2010-08-14 4 views
7

getter에서 속성에 대해 PropertyInfo을 얻을 수있는 방법이 있습니까? 이처럼 : 그 유지하기 까다로운로해당 속성의 가져 오기 도구에서 PropertyInfo를 가져 오는 방법이 있습니까?

public object Foo 
{ 
    get 
    { 
     PropertyInfo propertyInfoForFoo = xxx; 
     ... 
    } 
} 

나는 하드 코드 문자열로 속성의 이름을 피하기 위해합니다.

저는 .NET 2.0을 사용하고 있으므로 linq-less 솔루션을 기대하고 있습니다.

+0

가능한 중복 [반사를 통해 현재의 속성 이름을 얻는 방법?] (http://stackoverflow.com/questions/1206023/how-to-get-current-property-name-via-reflection) – nawfal

답변

5

MethodBase.GetCurrentMethod()는 get_YourPropertyName에 대한 MethodInfo 객체를 반환합니다.

PropertyInfo property = GetType() 
          .GetProperty(MethodBase 
              .GetCurrentMethod() 
              .Name 
              .Substring("get_".Length) 
             ); 
0

음 ... 그렇다면 게터를 "주는"방법을 어떻게 계획하셨습니까? 이 람다 & (C#을 V2에서 사용할 수도있는) <> 식을 필요로하지만

내가 볼 수있는 유일한 방법은 수행 할 수 있습니다 MyGetProperyInfo(x => x.Foo);

같은 것입니다

+0

Lambda는 C# 2에서 사용할 수 있습니다. linq가 아닙니다. 표현식 <>에 대해 잘 모르겠습니다. –

+0

@JOnB :'Expression' 및 모든 하위 유형은 System.Core 어셈블리에 구현되며 .NET 3.5에 추가되었습니다. – Richard

관련 문제