Mam problem z ustaleniem, jak dokładnie utworzyć instancję wyliczenia, gdy w czasie wykonywania mam typ System.Tumblacji wyliczeniowej i sprawdziłem, że BaseType to System .Enum, moja wartość jest wartością int pasującą do elementu w tajemniczej Enum.Tworzenie instancji nieznanego Enum z wartością ciągu za pomocą odbicia w C#
Dotychczasowy kod to tylko logika opisana powyżej, jak pokazano poniżej.
if (Type.GetType(type) != null)
{
if (Type.GetType(type).BaseType.ToString() == "System.Enum")
{
return ???;
}
}
Podczas pracy z wyliczenia w przeszłości zawsze wiedzieć w momencie wyliczenia kodu, który próbuję analizować, ale w tym scenariuszu im zdezorientowany i mieli trochę szczęścia artykulacji moje pytanie w sposób przyjazny google ... Zwykle robiłbym coś takiego jak , ale ponieważ nie wiem EnumType w czasie kodu jak mogę osiągnąć to samo?
To jest trochę mylące, co chcesz robić po „wrócić ???”, i dlaczego trzeba odbicie w tym przypadku. Nadal możesz zrobić to samo (SomeEnumType), aby przesłać typ do SomeEnumType. – outcoldman
Problem polega na tym, że nie wiem, czym może być Enum, w czasie pracy może to być dowolny. Powrót? byłoby coś w stylu: [kod] Enum.Parse (Type.GetType (type), ob); [/ code] –
Ten wiersz 'Type.GetType (type) .BaseType.ToString() ==" System.Enum " 'mówi mi, że obiekt' type' ma już typ 'SomeEnumType', więc dlaczego musisz go przekonwertować z' SomeEnumType' na 'SomeEnumType'? Czy możesz podać więcej informacji na temat tego, co chcesz z tym osiągnąć? – outcoldman