Есть ли способ программно определить, какой код свойства выполняется внутри? - PullRequest
1 голос
/ 10 сентября 2010

Я хочу назвать что-то похожее на

public static void Foo()
{
    PropertyInfo prop = xxx;
} 

из

public string Bar()
{
   get { return Foo(); }
}

Я хочу, чтобы prop была PropertyInfo для вызывающего свойства, я в недоумении относительно того, что xxxбудет.

Любые люди идеи?

Ответы [ 2 ]

4 голосов
/ 10 сентября 2010
public string Bar
{
    get { return Foo(GetType().GetProperty("Bar")); }
}
2 голосов
/ 10 сентября 2010

Свойство в действительности является двумя методами: get_PropertyName и set_PropertyName. Вы можете получить имена этих методов, используя класс StackTrace :

public string MethodName
{
  get { return new StackTrace(true).GetFrame(0).GetMethod().Name.Substring(4); }
}

Вызов Substring удалил часть get_ имени метода, поэтому вы получаете только имя свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...