バイトでRangeValidatorを使用します
-
05-09-2019 - |
質問
この問題のプロパティ宣言です:
[RangeValidator(1,RangeBoundaryType.Inclusive,255,RangeBoundaryType.Inclusive,MessageTemplate = "StartFlexibility is out of range")]
public byte StartFlexibility { get; set; }
validateメソッドが呼び出されると、FormatExceptionが値型がのInt32にする必要があることを私に言ってスローされます。
どのように修正するには、してください?
解決
も...迅速な明白な修正は、
、短いまたはintにタイプを変更しますしかし、私がやりたい別の観察は、範囲です。あなたは、1と256の間で包括範囲を取るためにRangeValidatorを言っているが、あなたはもしかしたらそれは叫ぶようにコンパイラの理由だが、255までのバイトの値を割り当てることができます。
RangeValidatorもパラメータの範囲のタイプをinferingされているので、キャストしてみてください。
[RangeValidator((byte) 1, ...
他のヒント
ジョニーが言うように、
、バイトにキャスト...しかし、もっとこのような
[RangeValidator(typeof(Byte), "1", RangeBoundaryType.Inclusive, "255", RangeBoundaryType.Inclusive, MessageTemplate = "Some message")]
他のオプションは、SelfValidationメッセージ範囲バリデータを呼び出し、そこにキャストすることです。
私はRangeValidatorクラス/属性を使用したことがありませんが、それはあなたがバイトだけ255に取得することができたときに上限として256を持っている問題です?
所属していません StackOverflow