AttributeUsage中的多个AttributeTargets

时间:2014-12-02 02:09:25

标签: c# reflection attributes

[AttributeUsage(AttributeTargets.Property)]
public class MyAttribute : Attribute
{
...
}

我希望在属性 fileds 上使用此自定义属性,而不是其他属性。如何分配多个目标(AttributeTargets.PropertyAttributeTargets.Field)?或者这是不可能的?

AttributeTargets.All不是我想要的。

2 个答案:

答案 0 :(得分:20)

您可以使用|(按位OR)运算符指定多个枚举值来指定多个这样的目标:

[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]
public class MyAttribute : Attribute
{
    ...
}

按位OR运算符与AttributeTargets枚举一起使用,因为它的值以特定方式分配,并且标记有Flags属性。

如果您愿意,可以在这里阅读更多内容:

答案 1 :(得分:0)

旧线程,但这可以通过or-operator实现。

[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]
public class MyAttribute : Attribute
{
...
}