Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Vous pouvez créer vos propres attributs personnalisés en définissant une classe d’attributs, une classe qui dérive directement ou indirectement de Attribute, ce qui permet d’identifier les définitions d’attributs dans les métadonnées rapidement et facilement. Supposons que vous souhaitez baliser des types avec le nom du programmeur qui a écrit le type. Vous pouvez définir une classe d’attribut personnalisée Author :
<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
Le nom de la classe est le nom de l’attribut. Author Il est dérivé de System.Attribute, il s’agit donc d’une classe d’attributs personnalisée. Les paramètres du constructeur sont les paramètres positionnels de l’attribut personnalisé. Dans cet exemple, name il s’agit d’un paramètre positionnel. Tous les champs ou propriétés publics en lecture-écriture sont des paramètres nommés. Dans ce cas, version est le seul paramètre nommé. Notez l’utilisation de l’attribut AttributeUsage pour rendre l’attribut valide uniquement sur les classes et les déclarations Author.
Vous pouvez utiliser ce nouvel attribut comme suit :
<Author("P. Ackerman", Version:=1.1)>
Class SampleClass
' P. Ackerman's code goes here...
End Class
AttributeUsage a un paramètre nommé, AllowMultipleavec lequel vous pouvez créer un attribut personnalisé à usage unique ou multiutiliseur. Dans l’exemple de code suivant, un attribut multiutiliseur est créé.
' multiuse attribute
<System.AttributeUsage(System.AttributeTargets.Class Or
System.AttributeTargets.Struct,
AllowMultiple:=True)>
Public Class Author
Inherits System.Attribute
Dans l’exemple de code suivant, plusieurs attributs du même type sont appliqués à une classe.
<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
Remarque
Si votre classe d’attributs contient une propriété, celle-ci doit être en lecture/écriture.