1

こんにちは、リフレクションを使用して、このモデルのプロパティの属性を反復しています。

[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 から : を取得できることがあります。

4

3 に答える 3

0

一度に 1 種類の属性を探すようにしてください。

foreach (var reqAttr in (RequiredAttribute[])propertyInfo.GetCustomAttributes(typeof(RequiredAttribute), false))
{
    // use reqAttr.ErrorMessage and so on, in here
}
于 2013-06-18T14:52:13.337 に答える