Code cochonneries. IoC à la rescousse
-
09-10-2019 - |
Autres conseils
Pour faire cela d'une manière générique (par exemple un seul morceau de code mise en œuvre INotifyPropertyChanged pour toute classe) utiliser un proxy. Il y a beaucoup de mises en œuvre autour de le faire avec Castle.DynamicProxy ou < a href = "http://www.google.com/search?hl=en&q=linfu+INotifyPropertyChanged" rel = "nofollow"> Linfu ou unité . Ces bibliothèques proxies ont un bon soutien dans des conteneurs IoC, par exemple DynamicProxy a une bonne intégration avec le château de Windsor et l'interception unité (ou quelque chose comme ça) a évidemment une bonne intégration avec le conteneur unité.
Je ne l'ai jamais utilisé, mais vous pouvez créer soi-disant quelque chose comme ceci en utilisant PostSharp .
Si vous êtes à la recherche d'une solution spécifique pour les objets liables création automatique que vous devriez regarder PropertyChanged.Fody (précédemment NotifyPropertyWeaver). Ce cours de mise en œuvre réécritures INotifyPropertyChanged pour inclure le code de notification. Il y a un exemple sur la page GitHub.
À mon avis, c'est plus propre que l'utilisation de la solution contenant du CIO proposé. Cependant, il est spécifique à la bibliothèque INotifyPropertyChanged liant donc n'est pas applicable en tant que solution générale, comme cela a été discuté dans votre question liée.