class A
{
    public static void M<T>() { ... }
}
...
Type type = GetSomeType();
Then I need to call A.M<T>() where type == typeof(T).
Reflection?
class A
{
    public static void M<T>() { ... }
}
...
Type type = GetSomeType();
Then I need to call A.M<T>() where type == typeof(T).
Reflection?
 
    
    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);
