Как применить атрибут 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);