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

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

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

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

System.Windows.Forms.FormWindowState

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

Parse

или

TryParse

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

typeof(Enum).GetMethod();

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

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

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

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


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

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

9   голосов , оценка 4.111 из 5
Похожие ответы