Cruft Code. IoC zur Rettung
-
09-10-2019 - |
Andere Tipps
Um dies zu tun in allgemeiner Weise (das heißt ein einzelnes Stück Code Umsetzung INotifyPropertyChanged für jede Klasse) einen Proxy verwenden. Es gibt viele Implementierungen um dies zu tun mit Castle.DynamicProxy oder < a href = "http://www.google.com/search?hl=en&q=linfu+INotifyPropertyChanged" rel = "nofollow"> Linfu oder Einheit . Diese Proxy-Bibliotheken haben eine gute Unterstützung in IoC-Container, zum Beispiel Dynamic gute Integration mit Schloss Windsor und Unity Interception hat (oder was auch immer es heißt) hat offensichtlich eine gute Integration mit dem Unity-Container.
Ich habe es nie benutzt, aber man kann angeblich so etwas wie dies schafft mit Postsharp .
Wenn Sie sich für eine bestimmte Lösung für die automatische Erzeugung von bindbare Objekte suchen Sie unter PropertyChanged.Fody (zuvor NotifyPropertyWeaver). Dies schreibt Klassen INotifyPropertyChanged Durchführung des Benachrichtigungscode enthalten. Es ist ein Beispiel auf der GitHub-Seite.
Meiner Meinung nach ist dies ordentlicheres als mit der vorgeschlagenen IOC-Container-Lösung. Es ist jedoch eine Bibliothek spezifisch INotifyPropertyChanged Bindung, um eine allgemeine Lösung nicht anwendbar ist, wie es in Ihrer verknüpften Frage diskutiert wird.