StringLengthAttribute scheint nicht zu funktionieren

8

Hier ist meine Testklasse mit Datenannotationen:

%Vor%

Hier ist mein Konsolen-Testprogramm:

%Vor%

Aus irgendeinem Grund bekomme ich keine Gültigkeitsprüfung, wenn die Stringlänge zu lang ist. Ich erhalte (wie erwartet) eine Validierungsausnahme, wenn ich die Eigenschaft auf null setze und erneut validiere. Irgendwelche Ideen, warum meine Zeichenkettenlänge Annotation nicht durchgesetzt wird?

    
Mike 23.01.2011, 20:36
quelle

2 Antworten

19

Es ist ein bisschen nicht intuitiv, aber ändern

%Vor%

bis

%Vor%

löst das Problem. Das dritte Argument ist bool validateAllProperties . Ich bin mir nicht sicher, warum das [Required] -Attribut zuvor erzwungen wurde, während [StringLength] es nicht war, aber zumindest funktioniert es jetzt.

    
Mike 23.01.2011, 20:42
quelle
3

Danke für das Posten. Ich habe einen Fehler in Microsoft Connect für dieses Problem veröffentlicht. Ich nehme an, dass sie eine System.String-Eigenschaft fälschlicherweise überspringt, da es sich um keinen Werttyp handelt, da sie keine tiefe / rekursive Überprüfung ohne den Parameter "validateAllProperties" durchführen.

Hier ist der Bug-Link, wenn Sie interessiert sind: Ссылка

    
Dan Mork 01.06.2011 19:33
quelle