Creating Custom Attributes (Visual Basic) (Creación de atributos personalizados [Visual Basic])
Para crear sus propios atributos personalizados, defina una clase de atributo derivada directa o indirectamente de Attribute, que agiliza y facilita la identificación de las definiciones de atributos en los metadatos. Imagínese que desea etiquetar tipos con el nombre del programador que los escribió. Puede definir una clase de atributos Author
personalizada:
<System.AttributeUsage(System.AttributeTargets.Class Or
System.AttributeTargets.Struct)>
Public Class Author
Inherits System.Attribute
Private name As String
Public version As Double
Sub New(ByVal authorName As String)
name = authorName
version = 1.0
End Sub
End Class
El nombre de la clase es el nombre del atributo, Author
. Se deriva de System.Attribute
, por lo que es una clase de atributo personalizada. Los parámetros del constructor son los parámetros posicionales del atributo personalizado. En este ejemplo, name
es un parámetro posicional. Las propiedades o los campos públicos de lectura y escritura son parámetros con nombre. En este caso, version
es el único parámetro con nombre. Observe el uso del atributo AttributeUsage
para hacer que el atributo Author
sea válido solo en las declaraciones de clase y de Structure
.
Puede usar este nuevo atributo de la siguiente manera:
<Author("P. Ackerman", Version:=1.1)>
Class SampleClass
' P. Ackerman's code goes here...
End Class
AttributeUsage
tiene un parámetro con nombre, AllowMultiple
, con el que puede hacer que un atributo personalizado sea multiuso o de un solo uso. En el ejemplo de código siguiente se crea un atributo multiuso.
' multiuse attribute
<System.AttributeUsage(System.AttributeTargets.Class Or
System.AttributeTargets.Struct,
AllowMultiple:=True)>
Public Class Author
Inherits System.Attribute
En el ejemplo de código siguiente se aplican varios atributos del mismo tipo a una clase.
<Author("P. Ackerman", Version:=1.1),
Author("R. Koch", Version:=1.2)>
Class SampleClass
' P. Ackerman's code goes here...
' R. Koch's code goes here...
End Class
Nota
Si la clase de atributo contiene una propiedad, dicha propiedad debe ser de lectura y escritura.
Consulte también
- System.Reflection
- Guía de programación en Visual Basic
- Escribir atributos personalizados
- Reflection (Visual Basic) (Reflexión [Visual Basic])
- Atributos de Visual Basic
- Accessing Attributes by Using Reflection (Visual Basic) (Acceso a atributos mediante reflexión [Visual Basic])
- AttributeUsage (Visual Basic)