Как определить, действительно ли Nullable(of Enum)
является Enum
с помощью отражения?
Я работаю с методом, который динамически заполняет объект типа T
с IDataReader
, полученным из вызова базы данных. По своей сути он проходит по ординалам устройства чтения данных и всем свойствам T
и заполняет свойства, соответствующие имени ординалов (также для изменения имен столбцов создается некоторая магия атрибутов). При любых других обстоятельствах он работает отлично, но когда я проверяю свойство BaseType
для System.Enum
, я нахожу вместо него System.ValueType
Таким образом, моя проверка Enum завершается неудачно, и метод взрывается.
[Изменить:
Type.IsEnum
не работает, как мне это нужно. Основная проблема здесь в том, что ничто в иерархии BaseType T
не говорит о том, что это Enum
. Как будто создание этого типа Nullable
лишает меня Enum
прав.]
Есть идеи?