Хорошо, это то, что я хочу сделать:
public static void CallStaticMethod(Type myType, String methodName, Object[] parameters)
{
MethodInfo m = myType.GetMethod(methodName); // make this compile-time safe
m.Invoke(null, parameters); // methodName method is supposed to be static
}
Теперь myType.GetMethod (methodName) может завершиться ошибкой во время выполнения, если «methodName» не существует.
Можно ли как-нибудь обезопасить время компиляции?
(предположим, что параметры верны)
Я бы хотел вызвать метод как-то так:
CallStaticMethod(()=>MyType.MyMethod(), Object[] parameters)
обратите внимание, что это не работает, так как вам нужно указать аргументы внутри лямбда-выражения.
Другими словами, мне нужен безопасный дескриптор времени компиляции для метода.
Я могу получить один тип, используя typeof (), но возможно ли это для метода?