How to call generic method if I have only Type instance?
class A
{
pu开发者_如何学Pythonblic static void M<T>() { ... }
}
...
Type type = GetSomeType();
Then I need to call A.M<T>()
where type == typeof(T)
.
Yes, you need reflection. For example:
var method = typeof(A).GetMethod("M");
var generic = method.MakeGenericMethod(type);
generic.Invoke(null, null);
Because the type is known at runtime you need to use reflection:
Type type = GetSomeType();
var m = typeof(A)
.GetMethod("M", BindingFlags.Static | BindingFlags.Public)
.MakeGenericMethod(type);
m.Invoke(null, null);
精彩评论