Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les attributs fournissent une méthode puissante d’association de métadonnées ou d’informations déclaratives, avec du code (assemblys, types, méthodes, propriétés, etc.). Une fois qu’un attribut est associé à une entité de programme, l’attribut peut être interrogé au moment de l’exécution à l’aide d’une technique appelée réflexion. Pour plus d’informations, consultez Réflexion (Visual Basic).
Les attributs ont les propriétés suivantes :
Les attributs ajoutent des métadonnées à votre programme. Les métadonnées sont des informations sur les types définis dans un programme. Tous les assemblys .NET contiennent un ensemble de métadonnées spécifié qui décrit les types et les membres de type définis dans l’assembly. Vous pouvez ajouter des attributs personnalisés pour spécifier toutes les informations supplémentaires requises. Pour plus d’informations, consultez Création d’attributs personnalisés (Visual Basic).
Vous pouvez appliquer un ou plusieurs attributs à des assemblys, modules ou éléments de programme plus petits, tels que des classes et des propriétés.
Les attributs peuvent accepter des arguments de la même façon que les méthodes et les propriétés.
Votre programme peut examiner ses propres métadonnées ou les métadonnées d’autres programmes à l’aide de la réflexion. Pour plus d’informations, consultez Accès aux attributs à l’aide de la réflexion (Visual Basic).
Utilisation d’attributs
Les attributs peuvent être placés sur la plupart des déclarations, bien qu’un attribut spécifique puisse restreindre les types de déclarations sur lesquels il est valide. Dans Visual Basic, un attribut est placé entre crochets<> (). Il doit apparaître immédiatement avant l’élément auquel il est appliqué, sur la même ligne.
Dans cet exemple, l’attribut SerializableAttribute est utilisé pour appliquer une caractéristique spécifique à une classe :
<System.Serializable()> Public Class SampleClass
' Objects of this type can be serialized.
End Class
Une méthode avec l’attribut DllImportAttribute est déclarée comme suit :
Imports System.Runtime.InteropServices
<System.Runtime.InteropServices.DllImport("user32.dll")>
Sub SampleMethod()
End Sub
Plusieurs attributs peuvent être placés sur une déclaration :
Imports System.Runtime.InteropServices
Sub MethodA(<[In](), Out()> ByVal x As Double)
End Sub
Sub MethodB(<Out(), [In]()> ByVal x As Double)
End Sub
Certains attributs peuvent être spécifiés plusieurs fois pour une entité donnée. Un exemple de tel attribut multiutiliseur est ConditionalAttribute:
<Conditional("DEBUG"), Conditional("TEST1")>
Sub TraceMethod()
End Sub
Remarque
Par convention, tous les noms d’attributs se terminent par le mot « Attribut » pour les distinguer des autres éléments du .NET Framework. Toutefois, vous n’avez pas besoin de spécifier le suffixe d’attribut lors de l’utilisation d’attributs dans le code. Par exemple, [DllImport]
équivaut au [DllImportAttribute]
DllImportAttribute
nom réel de l’attribut dans le .NET Framework.
Paramètres d’attribut
De nombreux attributs ont des paramètres, qui peuvent être positionnels, non nommés ou nommés. Tous les paramètres positionnels doivent être spécifiés dans un certain ordre et ne peuvent pas être omis ; Les paramètres nommés sont facultatifs et peuvent être spécifiés dans n’importe quel ordre. Les paramètres positionnels sont spécifiés en premier. Par exemple, ces trois attributs sont équivalents :
<DllImport("user32.dll")>
<DllImport("user32.dll", SetLastError:=False, ExactSpelling:=False)>
<DllImport("user32.dll", ExactSpelling:=False, SetLastError:=False)>
Le premier paramètre, le nom de la DLL, est positionnel et vient toujours en premier ; les autres sont nommés. Dans ce cas, les deux paramètres nommés ont la valeur false par défaut, afin qu’ils puissent être omis. Reportez-vous à la documentation de l’attribut individuel pour plus d’informations sur les valeurs de paramètre par défaut.
Cibles d’attribut
La cible d’un attribut est l’entité à laquelle l’attribut s’applique. Par exemple, un attribut peut s’appliquer à une classe, à une méthode particulière ou à un assembly entier. Par défaut, un attribut s’applique à l’élément qu’il précède. Toutefois, vous pouvez également identifier explicitement, par exemple, si un attribut est appliqué à une méthode, à son paramètre ou à sa valeur de retour.
Pour identifier explicitement une cible d’attribut, utilisez la syntaxe suivante :
<target : attribute-list>
La liste des valeurs target
possibles est indiquée dans le tableau suivant.
Valeur cible | S’applique à |
---|---|
assembly |
Ensemble entier |
module |
Module d’assembly actuel (différent d’un module Visual Basic) |
L’exemple suivant montre comment appliquer des attributs à des assemblys et des modules. Pour plus d’informations, consultez Attributs communs (Visual Basic).
Imports System.Reflection
<Assembly: AssemblyTitleAttribute("Production assembly 4"),
Module: CLSCompliant(True)>
Utilisations courantes des attributs
La liste suivante inclut quelques-unes des utilisations courantes des attributs dans le code :
Marquage des méthodes à l’aide de l’attribut
WebMethod
dans les services Web pour indiquer que la méthode doit être appelante sur le protocole SOAP. Pour plus d’informations, consultez WebMethodAttribute.Décrire comment marshaler les paramètres de méthode en cas d’interaction avec du code natif. Pour plus d’informations, consultez MarshalAsAttribute.
Description des propriétés COM pour les classes, méthodes et interfaces.
Appel de code non managé à l’aide de la classe DllImportAttribute.
Décrire votre assemblage en termes de titre, version, description ou marque commerciale.
Description des membres d’une classe à sérialiser pour la persistance.
Description de la façon de mapper entre les membres de classe et les nœuds XML pour la sérialisation XML.
Description des exigences de sécurité pour les méthodes.
Spécification des caractéristiques utilisées pour appliquer la sécurité.
Contrôler les optimisations par le compilateur juste-à-temps (JIT) pour que le code reste facile à déboguer.
Obtenir des informations sur l’appelant d’une méthode.
Sections connexes
Pour plus d’informations, consultez :