De forma predeterminada, Attribute
los mensajes de correo electrónico están limitados a aplicarse solo una vez a un solo campo / propiedad / etc. Puede ver esto en la definición de la Attribute
clase en MSDN :
[AttributeUsageAttribute(..., AllowMultiple = false)]
public abstract class Attribute : _Attribute
Por lo tanto, como han señalado otros, todas las subclases están limitadas de la misma manera, y si necesita varias instancias del mismo atributo, debe establecer explícitamente AllowMultiple
en true
:
[AttributeUsage(..., AllowMultiple = true)]
public class MyCustomAttribute : Attribute
En los atributos que permiten múltiples usos, también debe anular la TypeId
propiedad para asegurarse de que propiedades como PropertyDescriptor.Attributes
funcionan como se espera. La forma más sencilla de hacer esto es implementar esa propiedad para devolver la instancia del atributo en sí:
[AttributeUsage(..., AllowMultiple = true)]
public class MyCustomAttribute : Attribute
{
public override object TypeId
{
get
{
return this;
}
}
}
(Publicar esta respuesta no porque los demás estén equivocados, sino porque es una respuesta más completa / canónica).