J'ai récemment commencé à expérimenter PostSharp et j'ai trouvé un aspect particulièrement utile pour automatiser l'implémentation de INotifyPropertyChanged. Vous pouvez voir l'exemple here. La fonctionnalité de base est excellente (toutes les propriétés seront notifiées), mais il y a des cas où je pourrais vouloir supprimer la notification. Par exemple, je pourrais savoir qu'une propriété particulière est définie une fois dans le constructeur et ne changera plus jamais. En tant que tel, il n'est pas nécessaire d'émettre le code pour NotifyPropertyChanged. Le surcoût est minime lorsque les classes ne sont pas fréquemment instanciées et je peux éviter le problème en passant d'une propriété générée automatiquement à une propriété sauvegardée sur le terrain et en écrivant dans le champ. Cependant, au moment d'apprendre ce nouvel outil, il serait utile de savoir s'il existe un moyen de marquer une propriété avec un attribut pour supprimer la génération de code. Je voudrais pouvoir faire quelque chose comme ceci:Suppression de la multidiffusion PostSharp avec l'attribut
[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;
}
}
Excellent, merci. C'est un outil très puissant et mon projet se sent nettement plus propre sans toute la fastidieuse plomberie INotifyPropertyChanged. –