Recientemente comencé a experimentar con PostSharp y encontré un aspecto particularmente útil para automatizar la implementación de INotifyPropertyChanged. Puede ver el ejemplo here. La funcionalidad básica es excelente (se notificarán todas las propiedades), pero hay casos en los que es posible que desee suprimir la notificación.Suprimir PostSharp Multicast con el atributo
Por ejemplo, podría saber que una propiedad en particular se establece una vez en el constructor y nunca volverá a cambiar. Como tal, no hay necesidad de emitir el código para NotifyPropertyChanged. La sobrecarga es mínima cuando las clases no se instancian con frecuencia y puedo evitar el problema cambiando de una propiedad generada automáticamente a una propiedad con respaldo de campo y escribiendo en el campo. Sin embargo, a medida que aprenda esta nueva herramienta, sería útil saber si existe una forma de etiquetar una propiedad con un atributo para suprimir la generación de código. Me gustaría ser capaz de hacer algo como esto:
[NotifyPropertyChanged]
public class MyClass
{
public double SomeValue { get; set; }
public double ModifiedValue { get; private set; }
[SuppressNotify]
public double OnlySetOnce { get; private set; }
public MyClass()
{
OnlySetOnce = 1.0;
}
}
Excelente, gracias. Esta es una herramienta muy poderosa y mi proyecto se siente significativamente más limpio sin todas las tediosas tuberías de INotifyPropertyChanged. –