Привет Я использую отражение перебрать атрибутов свойств этой модели:Получение параметров и значения атрибута
[Required(ErrorMessage = "Username is required")]
[MaxLength(50, ErrorMessage = "Username should not have more then 50 chars")]
[MinLength(25 , ErrorMessage = "Username should have at least 25 chars")]
public string UserName { get; set; }
[Required(ErrorMessage = "Password is required")]
[StringLength(25)]
public string Password { get; set; }
public bool RememberMe { get; set; }
foreach (var propertyInfo in type)
var attr = propertyInfo.CustomAttributes;
foreach (var customAttributeData in attr)
{
var name = customAttributeData.AttributeType.Name;
}
}
мне удалось получить, насколько получает имя атрибута, но я имею проблема с получением пар ключ/значение атрибутов конструкторских аргументов.
Как получить доступ, например, к аргументам конструктора атрибутов и значениям?
Примером может быть в состоянии получить: от требуемого атрибута ErrorMessage.Name и ErrorMessage.Value
Это не является хорошим решением. Это * очень * неподъемный, и * очень * повторяющийся. – jason
@Jason Возможно, это зависит от вашей задачи. Большую часть времени вы хотите проверить, присутствует ли 'RequiredAttribute' или нет, и если он есть, вы хотите проверить, для чего установлены его свойства. В таком случае я бы сделал, как указано выше. Конечно, если вы хотите найти *** все *** типы атрибутов и проверить, какие свойства у них есть, вам придется использовать гораздо больше отражения. Но типичное использование атрибутов выглядит так: проверьте только один конкретный атрибут и не заботитесь о других атрибутах (значение которых для вас не имеет значения или неизвестно). –
Он не сказал специфически требуемый атрибут, и он показывает пару свойств со смесью атрибутов. – jason