Partager via


CodeAttributeArgument Classe

Définition

Représente un argument utilisé dans une déclaration d’attribut de métadonnées.

public ref class CodeAttributeArgument
public class CodeAttributeArgument
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class CodeAttributeArgument
type CodeAttributeArgument = class
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type CodeAttributeArgument = class
Public Class CodeAttributeArgument
Héritage
CodeAttributeArgument
Attributs

Exemples

Le code suivant crée une classe et ajoute des attributs de code pour déclarer que la classe est sérialisable et obsolète.

using System;
using System.CodeDom;
using System.CodeDom.Compiler;

public class CodeGenExample
{
    static void Main()
    {
        // Declare a new type called Class1.
        CodeTypeDeclaration class1 = new CodeTypeDeclaration("Class1");

        // Use attributes to mark the class as serializable and obsolete.
        CodeAttributeDeclaration codeAttrDecl =
            new CodeAttributeDeclaration("System.Serializable");
        class1.CustomAttributes.Add(codeAttrDecl);

        CodeAttributeArgument codeAttr =
            new CodeAttributeArgument( new CodePrimitiveExpression("This class is obsolete."));
        codeAttrDecl = new CodeAttributeDeclaration("System.Obsolete", codeAttr);
        class1.CustomAttributes.Add(codeAttrDecl);

        // Create a C# code provider
        CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");

        // Generate code and send the output to the console
        provider.GenerateCodeFromType(class1, Console.Out, new CodeGeneratorOptions());
    }
}

// The C# code generator produces the following source code for the preceeding example code:
//
// [System.Serializable()]
// [System.Obsolete("This class is obsolete.")]
// public class Class1 {
// }
Imports System.CodeDom
Imports System.CodeDom.Compiler

Public Class CodeGenExample

    Shared Sub Main
        ' Declare a new type called Class1.
        Dim class1 as New CodeTypeDeclaration("Class1")

        ' Use attributes to mark the class as serializable and obsolete.
        Dim codeAttrDecl As New CodeAttributeDeclaration("System.Serializable")
        class1.CustomAttributes.Add(codeAttrDecl)

        Dim codeAttr As _
            New CodeAttributeArgument( new CodePrimitiveExpression("This class is obsolete."))
        codeAttrDecl = New CodeAttributeDeclaration("System.Obsolete", codeAttr)
        class1.CustomAttributes.Add(codeAttrDecl)

        ' Create a Visual Basic code provider
        Dim provider As CodeDomProvider = CodeDomProvider.CreateProvider("VisualBasic")

        ' Generate code and send the output to the console
        provider.GenerateCodeFromType(class1, Console.Out, New CodeGeneratorOptions())
    End Sub

End Class

' The Visual Basic code generator produces the following source code for the preceeding example code:
'
' <System.Serializable(),  _
'  System.Obsolete("This class is obsolete.")>  _
' Public Class Class1
' End Class

Remarques

CodeAttributeArgument peut être utilisé pour représenter la valeur d’un seul argument d’un constructeur d’attribut, ou une valeur avec laquelle initialiser une propriété de l’attribut.

La Value propriété indique la valeur de l’argument. La Name propriété, lorsqu’elle est utilisée, indique le nom d’une propriété de l’attribut auquel affecter la valeur.

Les déclarations d’attribut sont fréquemment initialisées avec un certain nombre d’arguments passés dans le constructeur de l’attribut au moment de l’exécution. Pour fournir des arguments au constructeur d’un attribut, ajoutez un CodeAttributeArgument argument pour chaque argument à la Arguments collection d’un CodeAttributeDeclaration. Seule la Value propriété de chaque CodeAttributeArgument propriété doit être initialisée. L’ordre des arguments dans la collection doit correspondre à l’ordre des arguments dans la signature de méthode du constructeur pour l’attribut.

Vous pouvez également définir les propriétés de l’attribut qui ne sont pas disponibles via le constructeur en fournissant un CodeAttributeArgument qui indique le nom de la propriété à définir, ainsi que la valeur à définir.

Constructeurs

Nom Description
CodeAttributeArgument()

Initialise une nouvelle instance de la classe CodeAttributeArgument.

CodeAttributeArgument(CodeExpression)

Initialise une nouvelle instance de la classe à l’aide CodeAttributeArgument de la valeur spécifiée.

CodeAttributeArgument(String, CodeExpression)

Initialise une nouvelle instance de la classe à l’aide du nom et de la CodeAttributeArgument valeur spécifiés.

Propriétés

Nom Description
Name

Obtient ou définit le nom de l’attribut.

Value

Obtient ou définit la valeur de l’argument d’attribut.

Méthodes

Nom Description
Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

S’applique à

Voir aussi