c# – 使用反射和PropertyInfo无法识别我的枚举

我有一个审计课,通过反思恢复一切.在我的实际观点中,我需要知道特定属性是否为Enum,但我得到一个奇怪的行为:

在foreach迭代期间,q.PropertyType.IsEnum返回false.使用快速观察者属性真的是假的,而IsClass也是如此.所以这基本上没什么:)

再研究一下这个问题,我发现Nullable Enum在IsEnum中返回false.如何忽略此可空并验证属性是否为枚举?

解决方法

当您的属性属于可空类型时,IsEnum将返回false.在这种情况下,在q.PropertyType上调用 Nullable.GetUnderlyingType将返回所需的类型.然后你可以用IsEnum查看.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...