Вопрос

Это декларация о собственности, о которой идет речь:

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

При вызове метода проверки выдается исключение FormatException, сообщающее мне, что тип значения должен быть Int32.

Подскажите, пожалуйста, как исправить?

Это было полезно?

Решение

хорошо...быстрое очевидное решение — изменить тип на short или int,

но еще одно наблюдение, которое я хочу сделать, касается диапазона.Вы говорите RangeValidator принять включающий диапазон от 1 до 256, но вы можете просто назначить значение байта до 255, возможно, это повод для крика компилятора.

RangeValidator также определяет тип диапазона из параметров, поэтому попробуйте выполнить приведение

[RangeValidator((byte) 1, ...

Другие советы

Как говорит Джонни, приведение к байту...но больше так

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

Другой вариант — вызвать валидатор диапазона в сообщении SelfValidation и выполнить приведение туда.

Я никогда не использовал класс/атрибут RangeValidator, но проблема в том, что у вас есть 256 в качестве верхней границы, когда байт может достичь только 255?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top