Отражение: Получить имя или поле, которому присвоено возвращаемое значение - PullRequest
2 голосов
/ 09 апреля 2019

Можно ли получить имя поля, где возвращенный объект назначен , используя объект 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-код для стандартного кода.

...