2012-02-19 21 views
1

.NET 4.0ではリフレクションによって静的プロパティを取得するのに問題があります。継承された静的プロパティのリフレクション

言ってやるが、例えば、私は次のクラスがあります。今、私が呼び出した場合

class Foo 
{ 
    public static int MyProperty 
    { 
     get { return 1234; } 
    } 
} 

class Bar : Foo 
{ 

} 

を:

typeof(Foo).GetProperties(); 

私は1つの特性、 "MYPROPERTY" の予想一覧を取得。代わりに電話した場合:

typeof(Bar).GetProperties(); 

私は何も得られません。残念ながら私はTypeデータ型として格納された値を厳密に扱っているので、typeof(Foo).GetProperties()を直接呼び出すことはできません。

ありがとうございました!あなたは、基本クラスで宣言された静的プロパティを取得するためにBindingFlags.FlattenHierarchyを指定することができます
ゴドウィン

答えて

2

:あなたはプライベートな特性が必要な場合は

var props = typeof(Bar).GetProperties(BindingFlags.Public | 
             BindingFlags.Static | 
             BindingFlags.FlattenHierarchy); 
+0

それだけです!ありがとう! – Godwin

0
var prop = typeof (Bar).GetProperties(BindingFlags.FlattenHierarchy | BindingFlags.Public | BindingFlags.Static); 

あなたにもBindingFlags.NonPublicを追加する必要があります。 BindingFlags Enumeration

関連する問題