How to create duplicate allowed attributes
I'm using a custom attribute inherited from an attribute class. I'm using it like this:
[MyCustomAttribute("CONTROL")]
[MyCustomAttribute("ALT")]
[MyCustomAttribute("SHIFT")]
[MyCustomAttribute("D")]
public void setColor()
{
}
But the "Duplicate 'MyCustomAttribute' attribute" error is shown.
How can I create a duplicate allowed attribute?
Stick an AttributeUsage
attribute onto your Attribute class (yep, that's mouthful) and set AllowMultiple
to true
:
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
public sealed class MyCustomAttribute: Attribute
AttributeUsageAttribute ;-p
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
public class MyAttribute : Attribute
{}
Note, however, that if you are using ComponentModel (TypeDescriptor
), it only supports one attribute instance (per attribute type) per member; raw reflection supports any number...