Wes*_*s P 1 .net reflection enums nullable
如何通过反射确定a Nullable(of Enum)是否确实是一个Enum?
我正在使用一种方法,该方法T使用IDataReader从数据库调用中检索的类型动态填充类型的对象.从本质上讲,它循环遍历datareader的序数,并且所有属性T和填充与序数名称匹配的属性(也会抛出一些属性魔法来更改列名称).在其他任何情况下,它都很有效,但是当我检查属性的时候BaseType,System.Enum我找到了,System.ValueType 因此,我的枚举检查失败了,方法就会爆炸.
[编辑:
Type.IsEnum我的工作方式不起作用.这里的主要问题是,TBaseType层次结构中没有任何内容表明它是一个Enum.这就好像使它成为一种Nullable类型会丧失我的Enum权利.]
有任何想法吗?
这有点麻烦:
PropertyInfo.PropertyTypeIsGenericTypeGetGenericTypeDefinition()typeof(Nullable<>),则您具有NullableEnum)类型Nullable.GetUnderlyingType(propertyInfo.PropertyType)