У меня проблема в том, что я хотел бы вызвать метод из строки. Вот что я делаю:
Построение моего списка строк (методы) в моем пользовательском интерфейсе есть три разных объекта checkboxList
private List<string> MyTest = new List<string>();
private void AddSelectedMethods()
{
foreach(XName item in BaseTestList.CheckedItems)
{
MyTests.Add(item.ToString());
}
foreach (XName item in AdminTestList.CheckedItems)
{
MyTests.Add(item.ToString());
}
foreach (XName item in SubscriberTestList.CheckedItems)
{
MyTests.Add(item.ToString());
}
}
Вот звонящий. Если я беру вызов Reflections и ссылаюсь на метод напрямую, все работает, но я не хочу встраивать огромный список операторов if else.
private void StartSiteTest(object sender, DoWorkEventArgs e)
{
if (!BackWorker1.CancellationPending)
{
if (SiteToTest == "estatesales.vintagesoftware.local" || SiteToTest == "localhost")
{
es = new EstateSaleTests(site, Sites.First(i => i.SiteUrl == SiteToTest), BasePath, SiteToTest, UseCurrentCompanies);
foreach (string test in MyTests)
{
// <<<!!!!!!!! ------ The next line returns null ------ !!!!!!!>>>
MethodInfo thisMethod = es.GetType().GetMethod(test);
thisMethod.Invoke(es, null);
}
}
}
}
Любая помощь в том, что я делаю неправильно, будет принята с благодарностью.
!!! ----- РЕДАКТИРОВАТЬ ----- !!!
Я идиот. У меня был установлен класс для списка строк, но я забыл переименовать мои методы Извините за это. Да, Методы были общедоступны, и они доступны, теперь я просто должен переименовать их в правильные имена.