2
我正在使用反射来调用泛型方法,此方法返回一个对象,我想要在之后调用方法。在运行时将对象投射到泛型
public static string GetTableName(this ObjectContext context, Type T)
{
var method = typeof(ObjectContext).GetMethod("CreateObjectSet", new Type[]{});
var generic = method.MakeGenericMethod(T);
var objectSet = generic.Invoke(context, null);
var sqlString = objectSet.ToTraceString();
// doesn't work because ToTraceString() isn't a method of object
// it's a method of ObjectSet<T>
...
}
T直到运行时才知道。我如何投ObjectSet对象集<T>能够调用ToTraceString()?
你必须使用更多的反射调用在'objectSet'什么。 – TyCobb 2014-11-06 00:31:13
请记住,你可以用你永远不需要投射或反射的方式来构建你的程序。寻找函数式编程和F#。 – 2014-11-06 00:33:49
你有没有考虑动态参考? – recursive 2014-11-06 00:49:09