MinLength, MaxLength и массивы - bug
От: shatl Украина http://shatl.spaces.live.com
Дата: 13.01.07 17:41
Оценка:
Приветствую.
Обнаружилась некорректная работа атрибутов 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;
}


Если возражений нет закоммичу.
WBR,
Shatl
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.