3

この流れで何とかしたい

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";
}
4

2 に答える 2

8

ネストされたすべての型を取得するために使用GetNestedTypesし、それが Enum であるかどうかを確認します

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 に答える