2010-05-05 7 views
10

Dies ist ein Wort der Warnung mehr als eine Frage, wenn Sie RIAServices mit Custom ValidatorAttributes verwenden.Benutzerdefinierte DataAnnotations mit RIA-Services

Hier ist der Senario, ich erstellte eine benutzerdefinierte DataAnnotation, die eine Eigenschaft basierend darauf, ob eine mögliche Reihe von anderen Eigenschaften festgelegt wurde, wie z. Wenn Prop1 100 war, dann Prop2, Prop3 oder Prop4 nicht 0 sein konnte, musste einer von ihnen gesetzt werden. Ich verwende auch RIA-Dienste, also habe ich die ValidatorAttribute meine .shared.cs-Datei erstellt. Nachdem ich alle Tests für die Helfer-CannotBeZeroIf-Klasse geschrieben hatte, begann ich, die Attribute der Model-Klasse hinzuzufügen. Dies ist natürlich, wenn etwas schief gelaufen ist. RIA Services begannen während des CodeGen mit einer NullReferenceException zu kotzen.

CreateRiaClientFilesTask -> Nullreferenceexception

Es stellt sich heraus auf die Tatsache zurückzuführen sein, dass ich den Validator Konstruktor wurde mit der Klasse in den Werten zu übergeben. Durch die Umstellung auf die ObjectInitialization-Syntax wurde alles behoben.

Die Antwort scheint die ObjectInitializer-Syntax zu verwenden, wenn Sie mit RIA-Diensten und benutzerdefinierten DataAnnotation-Validatoren arbeiten.

+0

So viel wie ich die Absicht dieser OP schätzen, müssen Sie Stelle eine Frage. Das Problem mit diesem Beitrag, dass es auf der Liste der unbeantworteten Fragen auf unbestimmte Zeit stehen wird. Vielleicht könntest du deine eigene "Frage" beantworten (da du die Antwort bereits kennst) und sie als Antwort markieren? Dies würde verhindern, dass Ihr Beitrag von Moderatoren geschlossen wird. –

Antwort

0

Die Antwort zu sein scheint ObjectInitializer Syntax zu verwenden, wenn sie mit RIA Services und Custom DataAnnotation Validatoren zu tun (das war einfacher als ich dachte! ;-)