2011-09-12 5 views
0

Je veux une classe qui a une chaîne d'indexeur [string propertyName]. Cela va accéder à un dictionnaire qui est sérialisable avec la classe pour permettre les propriétés dynamiques. En outre, je veux implémenter IDataErrorInfo pour permettre la validation par rapport à ces propriétés.Implémenter IDataErrorInfo sur une classe qui a déjà un indexeur de propriétés avec une signature correspondante

Le problème est qu'ils ont des signatures correspondantes. Y a-t-il quelque chose que je puisse faire à ce sujet?

Répondre

3

Au lieu de mettre en œuvre implicitement l'interface, vous pouvez également mettre en œuvre explicitement de cette façon:

string IDataErrorInfo.this[string key]{get { return [..]; }} 
+0

Comment puis-je référencer la mise en œuvre explicite de ma force exécutoire si elle est privée? Les implémentations d'interface explicites sont-elles traitées comme publiques? Si oui, deux indexeurs ayant la même signature ne vont-ils pas causer un problème dans la liaison? –

+0

Hmm .. bonne question. Vous pouvez ajouter une propriété d'assistance de liaison pure (WPF?) 'Public IDataErrorInfo DEI {get {return this;}}' - peut-être que d'autres ont une solution plus intelligente pour cela. – springy76

+0

Qu'en est-il de [System.Runtime.CompilerServices.IndexerName ("Property")]? Puis-je utiliser un nom d'indexeur explicite dans le chemin de liaison pour choisir entre les deux indexeurs? –

Questions connexes