Rob*_*son 3 .net c# reflection enums class
考虑以下C#类声明:
public class MyClass {
private enum Colours { Red, Green, Blue }
}
Run Code Online (Sandbox Code Playgroud)
它位于一个单独的类库/ DLL中.
仅给出typeof(MyClass)对象(System.Type),有没有办法检查该类是否包含一个名为Colors的运行时枚举,如果是,则返回相应的System.Type对象?
我正在尝试做的是编写一些给定类的类型的通用代码,并确定是否包含一个特定命名的枚举,然后查询枚举中的值.
我知道如何使用Reflection来查询GetFields,GetProperties等内容,但System.Type中没有GetClasses或GetEnums方法.
我怀疑这种信息是在集会中?
Jep*_*sen 10
做就是了:
var res = typeof(MyClass).GetNestedType("Colours", BindingFlags.NonPublic);
Run Code Online (Sandbox Code Playgroud)
测试res != null是否存在此类型.
然后测试res.IsEnum以查看嵌套类型是否为枚举.
添加:如果嵌套类型偶尔嵌套公共,请BindingFlags.NonPublic | BindingFlags.Public改用.
| 归档时间: |
|
| 查看次数: |
8168 次 |
| 最近记录: |