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