Приветствую.
Обнаружилась некорректная работа атрибутов MinLengthAttribute / MaxLengthAttribute при попытке применения их к массивам.
class Data {
[NonUpdatable, MaxLength(8)]
public abstract byte[] version { get; set; }
}
public override bool IsValid(ValidationContext context)
{
return context.IsNull(context) || context.Value.ToString().Length >= _value;
}
В случае массива для него будет возвращен тип.
Предлагаю так:
internal static int GetValueLenth(object value)
{
if (value == null)
return 0;
if (value is Array)
return (value as Array).Length
else
return value.ToString().Length;
}
//
public override bool IsValid(ValidationContext context)
{
return context.IsNull(context) || GetValueLenth(context.Value) >= _value;
}
Если возражений нет закоммичу.