Ниже приведен очень парный пример того, чего я пытаюсь достичь
public class CoolClass<T>
{
public static void DoSomethingCool()
{
// Insert cool generic stuff here.
List<T> coolList = new List<T>();
}
}
public class OtherClass
{
public Action ReturnActionBasedOnStaticGenericMethodForType(Type type)
{
// Ideally this would just be
return CoolClass<type **insert magic**>.DoSomethingCool
}
}
Я знаю, если тип известен, я могу выполнить следующее, и он вернет System.Action
return CoolClass<string>.DoSomethingCool
Я знаю, что все, что я хотел сделать, это вызвать метод, который я могу сделать
Type baseType = typeof(CoolClass<>);
Type[] typeArguments = new [] {type}
Type constructedType = baseType.MakeGenericType(typeArguments);
MethodInfo method = constructedType.GetMethod("DoSomethingCool");
method.Invoke(null,null);
Возможно, я все вместе пошёл по неверному пути.Кажется, я пытаюсь получить method
как ссылку на DoSomethingCool
метод.Я желаю чего-то вроде (Action) method
.