我寫了擴展方法GenericExtension
。現在我想調用擴展方法Extension
。但methodInfo
的值始終爲空。如何用反射調用通用擴展方法?
public static class MyClass
{
public static void GenericExtension<T>(this Form a, string b) where T : Form
{
// code...
}
public static void Extension(this Form a, string b, Type c)
{
MethodInfo methodInfo = typeof(Form).GetMethod("GenericExtension", new[] { typeof(string) });
MethodInfo methodInfoGeneric = methodInfo.MakeGenericMethod(new[] { c });
methodInfoGeneric.Invoke(a, new object[] { a, b });
}
private static void Main(string[] args)
{
new Form().Extension("", typeof (int));
}
}
怎麼了?
參見http://stackoverflow.com/questions/5959219/how -to-use-reflection-to-get-extension-method-on-generic-type?rq = 1瞭解更多信息。 – skarmats 2013-04-10 13:23:55