0

나는 "마법 문자열"을 사용하지 않고, 궁금 해서요. 지금 나는 다음과 같은 일을 해요 :이 같은 이름, "get_IsBar"를 얻기의 어떤 방법이 있는지 내가 인터페이스에서, 궁금 해서요, 대신이 있습니까? MethodBase/MethodInfo를 생성하거나 메소드 이름을 생성 할 수있는 클래스가있는 경우

public void Foo(MethodInfo method) 
{ 
    if (String.Equals("get_IsBar", method.Name, StringComparison.Ordinal)) 
    { 
     // ... 
    } 
} 

을, 뭔가 :

public interface IBar 
{ 
    bool IsBar { get; } 
} 

public void Foo(MethodInfo method) 
{ 
    string barMethodName = GetBarGetterMethodName(typeof(IBar), "IsBar"); 
    if (String.Equals(barMethodName, method.Name, StringComparison.Ordinal)) 
    { 
     // ... 
    } 
} 

나는 아직도 거기에 "마법 문자열"이 있음을 인식하지만, 적어도 그것은 더 관리입니다. PropertyInfo

답변

1

사용 GetGetMethod() :

typeof(IBar).GetProperty("IsBar").GetGetMethod().Name