2010-05-05 4 views
10

Ceci est un mot d'avertissement plus qu'une question, si vous utilisez RIAServices avec Custom ValidatorAttributes.Annotations de données personnalisées avec les services RIA

Voici le Senario, je créais une DataAnnotation personnalisée qui validerait une propriété en fonction de si une série possible d'autres propriétés avait été définie, comme; si Prop1 était de 100 alors Prop2, Prop3, ou Prop4 ne pouvait pas être 0, l'un d'eux devait être réglé. J'utilise également les services RIA, j'ai donc créé le fichier ValidatorAttribute mon fichier .shared.cs. Après avoir écrit tous les tests pour la classe d'aide CannotBeZeroIf, j'ai commencé à ajouter les attributs à la classe Model. C'est bien sûr quand la chose a commencé à aller très mal. RIA Services a commencé à vomir pendant le CodeGen, avec une exception NullReferenceException.

CreateRiaClientFilesTask -> NullReferenceException

Il se révèle être lié au fait que j'utilisais le constructeur du validateur de transmettre les valeurs à la classe. En passant à l'utilisation de la syntaxe ObjectInitialization, tout a été corrigé.

La réponse semble utiliser la syntaxe ObjectInitializer lors de la gestion des services RIA et des validateurs DataAnnotation personnalisés.

+0

Autant que je comprends l'intention de cette OP, vous ne devez poser une question. Le problème avec ce post qu'il restera indéfiniment au-dessus de la liste des questions sans réponse. Peut-être pourriez-vous répondre à votre propre «question» (puisque vous connaissez déjà la réponse) et la marquer comme réponse? Cela empêcherait votre poste d'être éventuellement fermé par les modérateurs. –

Répondre

0

La réponse semble être utiliser la syntaxe ObjectInitializer lorsqu'ils traitent avec RIA Services et personnalisés DataAnnotation validateurs (qui était plus facile que je pensais! ;-)