2016-04-05 8 views
0

プロジェクトのどこにいてもいくつかのenumオブジェクトがあります。彼らは同じ特徴です。フィルターを使用してすべてのenumオブジェクトを見つける方法フィルタについてはわかりませんが、属性にEnumオブジェクトとフィルタタイプの属性を追加できると思います。プロジェクト内のすべてのENUMオブジェクトを取得する

public class FirstClass 
{ 
    [HelloWord] 
    public enum FirstEnum 
    { 
     View = 1, 
     Edit = 2 
    } 
} 

public class SecondClass 
{ 
    [HelloWord] 
    public enum SecondEnum 
    { 
     Good, 
     Bad 
    } 
} 

だから、私は属性[HelloWorldの]を含んでプロジェクト内のすべての列挙型のオブジェクトをリストしたい:

は例えば、私は2クラスで2つの列挙オブジェクトを持っています。どうやってやるの?

答えて

2

ここでは両方の列挙型であり、独自の 'HelloWorld'属性を持つすべての型をループするLinq式を示します。

foreach(Type enumType in Assembly.GetExecutingAssembly().GetTypes() 
         .Where(x => x.IsSubclassOf(typeof(Enum)) && 
           x.GetCustomAttribute<HelloWorldAttribute>() != null)) 
{ 
    Console.WriteLine(enumType.Name); 
} 
+0

'Assembly.GetExecutingAssembly()'はおそらくOPが望むアセンブリではありません。 –

+0

@DannyChen OPは「彼らは同じ機能を持っている」と言って「私のプロジェクト」に入っているので、私の最高の推測は実行アセンブリです。 – LodeRunner28

+0

@ダニーチェン:何か提案はありますか? –

関連する問題