您好,我正在使用反射来迭代此模型的属性的属性:
[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 获取:
最佳答案
您可以使用MemberInfo.Name
和TypedValue.Value
。这是代码:
foreach (var propertyInfo in typeof(YOUR CLASS).GetProperties())
{
var attr = propertyInfo.GetCustomAttributesData();
foreach (var customAttributeData in attr)
{
foreach (var item in customAttributeData.NamedArguments)
{
var name = item.MemberInfo.Name;
var value = item.TypedValue.Value;
}
}
}
关于c# - 获取属性的参数和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17171295/