Получить доступ к TryParse типа Enum через рефлексию - C#

Узнай цену своей работы

Формулировка задачи:

возникла необходимость восстановить значение перечисления

System.Windows.Forms.FormWindowState

из строки. Метода

Parse

или

TryParse

у этого перечисления нет. Пытаюсь получить метод TryParse типа Enum, однако получаю null.
Листинг программы
  1. FormWindowState windowState;
  2. string str = "Normal";
  3. MethodInfo methodInfo = typeof(Enum).GetMethod("TryParse", new[] { typeof(string), typeof(Enum).MakeByRefType() });
  4. if (methodInfo != null)
  5. {
  6. object[] objects = new object[] { str, typeof(FormWindowState).MakeByRefType() };
  7. if ((bool)methodInfo.Invoke(windowState, objects))
  8. windowState = (FormWindowState)objects[1];
  9. }
При этом typeof(Enum) говорит, что у него есть:
Листинг программы
  1. [System.Reflection.RuntimeMethodInfo] = {Boolean TryParse[TEnum](System.String, TEnum ByRef)}
Как правильно вызвать

typeof(Enum).GetMethod();

чтобы получить ссылку на метод?

Решение задачи: «Получить доступ к TryParse типа Enum через рефлексию»

textual
Листинг программы
  1. var parser = new FileIniDataParser();
  2. MainFormSettings = new MainFormSettings();
  3. IniData iniData = parser.ReadFile(FileName);
  4. //вызываем метод расширения
  5. MainFormSettings.LoadFromIniData(iniData["MainFormSettings"]);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы