Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to call generic method if I have only Type instance?

Tags:

.net

generics

class A
{
    public static void M<T>() { ... }
}

...
Type type = GetSomeType();

Then I need to call A.M<T>() where type == typeof(T).
Reflection?

like image 378
Sergey Metlov Avatar asked Dec 21 '22 11:12

Sergey Metlov


1 Answers

Yes, you need reflection. For example:

var method = typeof(A).GetMethod("M");
var generic = method.MakeGenericMethod(type);
generic.Invoke(null, null);
like image 127
Jon Skeet Avatar answered Dec 28 '22 23:12

Jon Skeet