Мой ответ на один из вопросов о SO прокомментировал Валентин Кузуб, который утверждает, что встраивание свойства компилятором JIT приведет к тому, что отражение перестанет работать.
Случай выглядит следующим образом:
class Foo
{
public string Bar { get; set; }
public void Fuzz<T>(Expression<Func<T>> lambda)
{
}
}
Fuzz(x => x.Bar);
Fuzz
функция принимает лямбда-выражение и использует отражение, чтобы найти свойство.Это обычная практика в MVC в HtmlHelper
расширениях.
Я не думаю, что отражение перестанет работать, даже если свойство Bar
станет встроенным, так как это вызов Bar
, которыйбудет вставлено, и typeof(Foo).GetProperty("Bar")
все равно вернет действительный PropertyInfo
.
Не могли бы вы подтвердить это, пожалуйста, или мое понимание метода встраивания неверно?