查找枚举类型的成员



我想在这一行做点什么

var membersOfTypeEnum =  typeof(myType).GetMembers().Where(i => i.IsEnum);
然而,在上面的模型中,iMemberInfo类型的,不实现IsEnum

GetType(i).NameRuntimeType是包含真实类型的反射类型(我认为),但我似乎找不到一种方法来获得成员本身的类型。

那么,如何查找给定类型的成员(即枚举)呢?

编辑,假设我想反映这个类型:

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

相关内容

  • 没有找到相关文章

最新更新