NuGet на помощь!PM> Install-Package dnpextensions
После того, как у вас есть этот пакет в вашем проекте, все объекты теперь должны иметь расширение .InvokeMethod()
, которое будет принимать имя метода в виде строки и любое количество параметров.
Это технически использует «волшебные строки» для имен методов, поэтому, если вы хотите строго набрать словарь методов, вы можете создать ключи типа MethodInfo и получить их следующим образом ...
MethodInfo[] methodInfos = typeof(MyClass).GetMethods();
И тогда вы можете сделать что-то вроде этого ...
var methods = new Dictionary<MethodInfo, Object[]>();
foreach (var item in methods)
item.key.Invoke(null, item.value);
// 'null' may need to be an instance of the object that
// you are calling methods on if these are not static methods.
Или вы можете сделать некоторые вариации вышеупомянутого блока, используя расширения dnpextensions, которые я упоминал ранее.