class Country
{
//props
}
dataContext是一个带有方法Set()的变量,它的工作原理如下
dataContext.Set<Country>().SomeThing();
但我不想硬编码 type = Country ,而是我想从变量中提取类型,例如
function MyFunction(object o)
{
dataContext.Set</*something_here*/>().SomeThing();
//some how extract type from variable o
}
答案 0 :(得分:10)
怎么样:
void MyFunction<T> (T o)
{
dataContext.Set<T> ().SomeThing ();
}
然后用:
调用它MyFunction<County> (county_object);
答案 1 :(得分:3)
除了其他答案,你可以用一些反思技巧来做到这一点。基本上,它会像这样沸腾:
MakeGenericType
的MethodInfo上的o.GetType()
。 SomeThing
方法。 尝试在内存中对此进行编码,请原谅任何代码错误:
var setMethod = dataContext.GetType().GetMethods().First(x => x.Name == "Set");
var genericVersion = setMethod.MakeGenericType(o.GetType());
var result = genericVersion.Invoke(dataContext, null) as WhateverSetReturns;
result.SomeThing();