2012-02-19 3 views
1

.NET 4.0에서 리플렉션을 통해 정적 속성을 가져 오는 데 문제가 있습니다.상속 된 정적 속성에 대한 리플렉션

말은 예를 들어, 나는 다음과 같은 클래스가 : 지금은 호출하는 경우

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

class Bar : Foo 
{ 

} 

을 :

typeof(Foo).GetProperties(); 

내가 하나 개의 속성 "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

관련 문제