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?

Était-ce utile?

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?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top