3

我想做一些事情

var membersOfTypeEnum =  typeof(myType).GetMembers().Where(i => i.IsEnum);

但是,在上面的模型i中是 typeMemberInfo并且没有实现IsEnum.

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

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

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

public static class MyType
{
    public enum EnumMember
    {
        One = 1,
        Two = 2,
    }

   public static string NotEnumMember = "this is a string";
}
4

2 回答 2

8

用于GetNestedTypes获取所有嵌套类型并检查它是否为枚举

typeof(MyType)
    .GetNestedTypes()
    .Where(type => type.IsEnum)
于 2013-03-20T12:07:00.797 回答
4

这应该可以满足您的要求 - 使用GetNestedTypes

var membersOfTypeEnum =  typeof(MyType).GetNestedTypes()
                           .Where(i => i.IsEnum);

现场示例:http ://rextester.com/CGK11010

于 2013-03-20T12:07:21.737 回答