Использование атрибута MaxLength в .Net Standard 1.2

Мой основной проект застрял в .Net framework 4.5.1 и ссылается на проект в .Net Standard. По соображениям совместимости я не могу обновить .Net Standard до версии 1.2. В проекте .Net Standard необходимо объявлять модели с атрибутом [MaxLength()] из System.ComponentModel.DataAnnotations, но этот атрибут доступен только в версии 2.0.

Есть ли обходной путь для атрибута [MaxLength()] в стандарте 1.2?

EDIT Я уже пытался реализовать это самостоятельно, но, как и следовало ожидать, верхний уровень Entity Framework не учитывает его.

введите здесь описание изображения


person sinsedrix    schedule 05.06.2020    source источник
comment
что это за приложение?   -  person vivek nuna    schedule 05.06.2020


Ответы (2)


Может быть, создать свой собственный [MaxLength], наследующий от ValidationAttribute?

вы можете посмотреть или просто скопировать и вставить текущая реализация

person Thibaut    schedule 05.06.2020

Можешь сам написать)

public class MyMaxLenght : ValidationAttribute
{
    private int _lenght;
    public MyMaxLenght(int lenght)
    {
        _lenght = lenght;
    }
    public override bool IsValid(object value)
    {
        if (value != null)
        {
            return value.ToString().Length > _lenght ? true : false;
        }
        return false;
    }
}

С использованием:

public class Test
{
    [MyMaxLenght(2)]
    public string Name;
}

Или используя

[Максимальная длина()]

из

использование System.ComponentModel.DataAnnotations;

person STALER    schedule 05.06.2020