Здравствуйте, shatl, Вы писали:
S>Обнаружилась некорректная работа атрибутов MinLengthAttribute / MaxLengthAttribute при попытке применения их к массивам.
Почему некорректная? Нигде н сказано что они должны работать с массивами
S>[c#]
S>internal static int GetValueLenth(object value)
S>{
S> if (value == null)
S> return 0;
S> if (value is Array)
S> return (value as Array).Length
S> else
S> return value.ToString().Length;
S>}
Есть возражения.
1) А почему только массив? А если у тебя в следующий раз коллекция будет? Дописывать новый if?
2) Не очень хорошо добавлять код который не нужен в 99.9% случаев, но при этом будет влиять на производительность.
3) У тебя в коде смешаны is и as проверки что не очень хорошо. Можно сделать сразу as с последующей проверкой на null.
Лучший вариант думаю будет если ты создашь отдельный атрибут для проверки длины массива. А здесь пусть все остается как есть