質問

この問題のプロパティ宣言です:

 [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を持っている問題です?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top