En utilisant l'octet RangeValidator
-
05-09-2019 - |
Question
Ceci est la déclaration de propriété en question:
[RangeValidator(1,RangeBoundaryType.Inclusive,255,RangeBoundaryType.Inclusive,MessageTemplate = "StartFlexibility is out of range")]
public byte StartFlexibility { get; set; }
Lorsque la méthode de validation est appelée, un FormatException est jeté en me disant que le type de valeur doit être Int32.
Comment réparer, s'il vous plaît?
La solution
bien ... la solution évidente rapide sera changer le type de short ou int,
mais une autre observation que je veux faire, est à la portée. Vous dites la RangeValidator de prendre une gamme compris entre 1 et 256, mais vous pouvez simplement attribuer une valeur d'octet jusqu'à 255, peut-être c'est la raison du compilateur de crier.
Le RangeValidator est également le type de inférer la gamme des paramètres, donc, essayez de caster
[RangeValidator((byte) 1, ...
Autres conseils
Comme le dit Jhonny, jeté à l'octet ... mais plus comme ceci
[RangeValidator(typeof(Byte), "1", RangeBoundaryType.Inclusive, "255", RangeBoundaryType.Inclusive, MessageTemplate = "Some message")]
L'autre option serait d'appeler la gamme validateur dans un message SelfValidation et y jeter.
Je ne l'ai jamais utilisé la classe RangeValidator / attribut, mais est-ce une question que vous avez 256 comme une limite supérieure lorsqu'un octet ne peut se rendre à 255?