2009-10-02 17 views
0

Est-il possible de le faire:mise en œuvre INotifyPropertyChanged ou événement personnalisé similaire dans la classe de base

J'ai besoin de développer la meilleure façon de soutenir l'enregistrement des changements de propriété d'une classe. En plus de façon manuelle d'ajouter le support INotifyProperyChanged, est-il un moyen de le faire comme ceci:

class Base ... // all notification logic here 

class Child 
{ 
    public string Name { get; set; } 
    public int SomeNumber { get; set; } 
    // etc.... 
} 

pour que je puisse faire Child.PropertyChanged + = some_handler et être averti que les changements de propriété des enfants. Ce n'est pas pour NHibernate, ou quoi que ce soit d'autre, c'est pour une utilisation manuelle dans tout le projet. J'ai examiné quelques exemples de faire cela avec Castle Dynamic Proxy (comme here), mais je ne comprends pas comment l'exploiter :(

Bien sûr aimerait explorer les cadres et AOP en général, je ne sais pas t ont enuogh temps maintenant ...

Merci d'avance pour vos commentaires ...

+0

Ok ... Je vais quelque part ... Pour commencer lien mentionné usi Dans Castle DP, vous devez convertir l'objet créé en INotifyPropertyChanged. Pour simplifier, vous pouvez créer quelque chose comme: public static void Registre (T toRegister, gestionnaire PropertyChangedEventHandler) {((INotifyPropertyChanged) toRegister) .PropertyChanged + = gestionnaire; } –

Répondre

2

proxies ou AOP sont vraiment vos seules options pour ce faire automagiquement, vous devrez soit trouver le temps de enquêter ou faire le good old-fashioned way