Mi answer a una de las preguntas en SO fue comentada por Valentin Kuzub, quien argumenta que al crear una propiedad mediante el compilador JIT la reflexión dejará de funcionar.Propiedad/Método en línea e impacto en la Reflexión
El caso es el siguiente:
class Foo
{
public string Bar { get; set; }
public void Fuzz<T>(Expression<Func<T>> lambda)
{
}
}
Fuzz(x => x.Bar);
Fuzz
función acepta una expresión lambda y utiliza la reflexión para encontrar la propiedad. Es una práctica común en MVC en extensiones HtmlHelper
.
no creo que la reflexión dejará de funcionar incluso si la propiedad se Bar
inline, ya que es una llamada a Bar
que ser inline y typeof(Foo).GetProperty("Bar")
todavía devolverá un PropertyInfo
válida.
¿Podría confirmar esto por favor o mi comprensión del método de alineación es incorrecta?
Btw Encontré este interesante artículo que muestra otras razones para no usar lambdas en implementaciones de INotifyPropertyChange http://blog.quantumbitdesigns.com/2010/01/26/mvvm-lambda-vs-inotifypropertychanged-vs-dependencyobject/ –