2010-11-20 10 views
10

Actuellement, mes objets métier implémentent IDataErrorInfo. Depuis que j'ai l'intention d'utiliser ces bibliothèques dans ASP.NET MVC 3, je pense que je devrais implémenter IValidatableObject aussi bien ou peut-être au lieu de.IDataErrorInfo vs IValidatableObject?

Est-ce que WPF fonctionne avec IValidatableObject?

Comment les DataAnnotations s'intègrent-elles dans l'image?

Répondre

2

IValidatableObject est une interface pour vérifier les erreurs au niveau de l'objet entier. Il est de votre responsabilité de l'implémenter en vérifiant les annotations de données ou d'autres techniques. MVC prend en charge les annotations de données en mode natif. Vous pouvez donc les utiliser sans aucun autre support. Par contre wpf UNIQUEMENT SUPPORTE IDataErrorInfo. Il n'a aucun support pour IValidateObject ou DataAnnotations.

Toutefois, j'ai implémenté un objet wrapper qui ajoute la prise en charge de DataAnnotation dans Wpf à l'objet enveloppé. Il fournit également une implémentation de IPropertyChanged. Voir le Validation Toolkit for Wpf and Silverlight sur codeplex

1

Je suis implémentant IValidatableObject à l'entité, en l'enveloppant avec IDataErrorInfo au modèle de vue (automatiquement via la classe de base) pour WPF. Mes entités fonctionneront bien dans WPF, MVC et le nouveau EF CTP5 qui honore également IValidatableObject.