Как применить атрибут StringLength сразу ко всем свойствам внутри класса?

У меня есть класс с ~ 400 строковыми свойствами (он генерируется автоматически), который я хотел бы применить[StringLength(50)]ко всем свойствам в классе. Возможно ли это без копирования и вставки атрибута 400 раз?

1 ответ

Есть способ сделать это с помощью отражения, но этот подход будет применять атрибуты во время выполнения, а не во время компиляции.

      public static void AddStringLengthAttribute(Type type, int maxLength)
{
    var properties = type.GetProperties();
    foreach (var property in properties)
    {
        var attribute = new StringLengthAttribute(maxLength);
        property.SetCustomAttribute(attribute);
    }
}

Тогда вы можете позвонитьAddStringLengthAttribute(typeof(YourClass), 50);

Другие вопросы по тегам