2016-07-15 3 views
1

Пытается проанализировать аргумент командной строки ('MyNameSpace.MyEnumClassName.MyConstantName'), чтобы получить константу.Parsing FQN enum constant to enum constant без разделения строки

Возможно ли это без извлечения имени EnumClassName? Я знаю, что я мог бы получить константу с Type.GetType(...); Enum.Parse(...)

Но есть ли прямой способ?

Фон: Этот аргумент может использоваться для разных вещей. Может быть fqn класса, константа ... Я знаю, что это не «чистый», но это не часть этого вопроса.

+0

Я думаю, что это невозможно, потому что 'Enum.Parse()' требует, чтобы тип перерассеяния анализировался. –

+0

Вы хотите, чтобы вы получили строку '' MyConstantName''? 'arg.Split ('.'). Last()', если вы хотите иметь значение enum/числовое значение, вам нужно 'Enum.Parse()' – Rhumborl

+0

Несомненно Type.GetType в MyNameSpace.MyEnumClassName, за которым следует Enum.Parse в MyConstantName вы получите значение Enum в объекте. Это не особенно тяжело. Если вы хотите, чтобы это была единственная функция, тогда где-нибудь напишите статическую функцию в классе утилиты. –

ответ

0

Как, кажется, нет прямого пути, я закрываю этот вопрос с ответом «no».

Смежные вопросы