我想在这一行做点什么
var membersOfTypeEnum = typeof(myType).GetMembers().Where(i => i.IsEnum);
然而,在上面的模型中,i
是MemberInfo
类型的,不实现IsEnum
。 GetType(i).Name
说RuntimeType
是包含真实类型的反射类型(我认为),但我似乎找不到一种方法来获得成员本身的类型。
那么,如何查找给定类型的成员(即枚举)呢?
编辑,假设我想反映这个类型:
public static class MyType
{
public enum EnumMember
{
One = 1,
Two = 2,
}
public static string NotEnumMember = "this is a string";
}
使用GetNestedTypes
获取所有嵌套类型并检查它是否为Enum
typeof(MyType)
.GetNestedTypes()
.Where(type => type.IsEnum)
这应该做你想要的-使用GetNestedTypes
:
var membersOfTypeEnum = typeof(MyType).GetNestedTypes()
.Where(i => i.IsEnum);
实例:http://rextester.com/CGK11010