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

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

}

它发现方法上的 attr 很好,但属性上的 attr 无法识别。

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

我在调试期间查看了该对象,并查看了它正确列出了 CustomAttributes 中的属性的方法,但是属性上的那个是空的……谁能解释一下?

4

1 回答 1

2

您在属性上定义了属性,而不是在属性访问器上。要在 getter 上提供属性,您将使用此语法(我包括了所有 3 个可能的位置,您可以根据其适用性选择在任何组合上添加属性)。

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