Frage

Dies ist die Eigenschaft Erklärung in Frage:

 [RangeValidator(1,RangeBoundaryType.Inclusive,255,RangeBoundaryType.Inclusive,MessageTemplate = "StartFlexibility is out of range")]
    public byte StartFlexibility { get; set; }

Wenn die Validate-Methode aufgerufen wird, ein Format geworfen wird, mir zu sagen, dass der Wert Typ Int32 sein muss.

Wie beheben, bitte?

War es hilfreich?

Lösung

na ja ... die schnell offensichtlich fix wird die Art zu kurz sein, ändern oder int,

aber eine andere Beobachtung, die ich tun möchte, ist mit dem Bereich. Sie sind den RangeValidator sagen, einen inklusiven Bereich zwischen 1 und 256 zu nehmen, aber man kann nur einen Byte-Wert bis 255 zuweisen, vielleicht ist das der Compiler Grund zu schreien.

Die RangeValidator wird auch infering die Art des Range aus den Parametern, so, versuchen Casting

[RangeValidator((byte) 1, ...

Andere Tipps

Wie Jhonny sagt, auf Byte werfen ... aber eher wie dieses

[RangeValidator(typeof(Byte), "1", RangeBoundaryType.Inclusive, "255", RangeBoundaryType.Inclusive, MessageTemplate = "Some message")]

Die andere Option wäre, den Bereich Validator in einer SelfValidation Nachricht anzurufen und dort geworfen.

Ich habe noch nie verwendet die RangeValidator Klasse / Attribut, aber ist es ein Thema, das Sie 256 als Obergrenze, wenn ein Byte nur 255 bekommen kann?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top