My answer to one of the question on SO was commented by Valentin Kuzub, who argues that inlining a property by JIT compiler will cause the reflection to stop working.
The case is as follows:
class Foo
{
public string Bar { get; set; }
public void Fuzz<T>(Expression<Func<T>> lambda)
{
}
}
Fuzz(x => x.Bar);
Fuzz
function accepts a lambda expression and uses reflection to find the property. It is a common practice in MVC in HtmlHelper
extensions.
I don't think that the reflection will stop working even if the Bar
property gets inlined, as it is a call to Bar
that will be inlined and typeof(Foo).GetProperty("Bar")
will still return a valid PropertyInfo
.
Could you confirm this please or my understanding of method inlining is wrong?