Встраивание свойства / метода и влияние на отражение

Мой ответ на один из вопросов по SO был прокомментирован Валентином Кузубом, который утверждает, что встраивание свойства компилятором JIT приведет к прекращению работы отражения. .

Случай выглядит следующим образом:

class Foo
{
    public string Bar { get; set; }

    public void Fuzz(Expression> lambda)
    {
    }
}

Fuzz(x => x.Bar);

Функция Fuzz принимает лямбда-выражение и использует отражение для нахождения свойства. Это обычная практика в MVC в расширениях HtmlHelper .

Я не думаю, что отражение перестанет работать, даже если свойство Bar будет встроено, поскольку это вызов в Bar , который будет встроен, и typeof (Foo) .GetProperty ("Bar") по-прежнему будет возвращать действительный PropertyInfo .

Не могли бы вы подтвердить это пожалуйста, или я неправильно понимаю встраивание метода?

9
задан Community 23 May 2017 в 10:24
поделиться