2
[MyAttribute("x")]
public string Z{get;set;}

[MyAttribute("x")]
public void Y()
{

}

メソッドの属性は問題なく検出されますが、プロパティの属性は認識されません。

public static bool HasAttribute(this MethodInfo m, Type attrType)
{
    return Attribute.IsDefined(m, attrType);
}

デバッグ中にオブジェクトを調べたところ、カスタム属性の属性が正しくリストされているメソッドが表示されましたが、プロパティの属性は空です...誰か説明できますか?

4

1 に答える 1

2

プロパティアクセサーではなく、プロパティで属性を定義しました。ゲッターに属性を提供するには、次の構文を使用します (3 つの可能な場所をすべて含めました。適用可能性に応じて、任意の組み合わせで属性を追加することを選択できます)。

[MyAttribute("on PropertyInfo")]
public string Z
{
    [MyAttribute("on getter MethodInfo")] get;
    [MyAttribute("on setter MethodInfo")] set;
}
于 2013-03-20T18:35:40.320 に答える