Можно ли получить имя поля, где возвращенный объект назначен , используя объект StackTrace
и отражение?
В этом примере метод CreateFooObject
должен знать имя поля, которому назначен возвращаемый объект ("Foo"). Предыдущий кадр стека, очевидно, .cctor
, однако есть ли способ получить фактическое поле, о котором идет речь?
public static readonly object Foo = CreateFooObject();
public static object CreateFooObject()
{
StackFrame[] stack = new StackTrace().GetFrames();
// get name of field: "Foo"
string fieldName = ...;
return ...;
}
Справочная информация: Я завершаю метод DependencyProperty.Register
, чтобы сделать его без параметров. Я уже позаботился о двух Type
параметрах, которые я могу получить с помощью отражения. То, что осталось, это name
. Так что по сути это синтаксический WPF-код для стандартного кода.