Получить доступ к TryParse типа Enum через рефлексию - C#
Формулировка задачи:
возникла необходимость восстановить значение перечисления
При этом typeof(Enum) говорит, что у него есть:
Как правильно вызвать
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];
- }
Листинг программы
- [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"]);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д