我想沿着这条
行做点什么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";
}
答案 0 :(得分:8)
使用GetNestedTypes
获取所有嵌套类型,并检查它是否为Enum
typeof(MyType)
.GetNestedTypes()
.Where(type => type.IsEnum)
答案 1 :(得分:4)
这应该按照您的要求执行 - 使用GetNestedTypes
:
var membersOfTypeEnum = typeof(MyType).GetNestedTypes()
.Where(i => i.IsEnum);