Freigeben über


CodeAttributeArgument Klasse

Definition

Stellt ein Argument dar, das in einer Metadaten-Attributdeklaration verwendet wird.

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
Vererbung
CodeAttributeArgument
Attribute

Beispiele

Der folgende Code erstellt eine Klasse und fügt Codeattribute hinzu, um zu deklarieren, dass die Klasse serialisierbar und veraltet ist.

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

Hinweise

CodeAttributeArgument kann zum Darstellen des Werts für ein einzelnes Argument eines Attributkonstruktors oder eines Werts verwendet werden, mit dem eine Eigenschaft des Attributs initialisiert werden soll.

Die Value Eigenschaft gibt den Wert des Arguments an. Die Name Eigenschaft gibt bei Verwendung den Namen einer Eigenschaft des Attributs an, dem der Wert zugewiesen werden soll.

Attributdeklarationen werden häufig mit einer Reihe von Argumenten initialisiert, die zur Laufzeit an den Konstruktor des Attributs übergeben werden. Um dem Konstruktor argumente für ein Attribut bereitzustellen, fügen Sie der CodeAttributeArgumentArguments Auflistung einer .CodeAttributeDeclaration Nur die Value Eigenschaft jeder CodeAttributeArgument muss initialisiert werden. Die Reihenfolge der Argumente innerhalb der Auflistung muss der Reihenfolge der Argumente in der Methodensignatur des Konstruktors für das Attribut entsprechen.

Sie können auch Eigenschaften des Attributs festlegen, die nicht über den Konstruktor verfügbar sind, indem Sie einen CodeAttributeArgument Wert angeben, der den Namen der festzulegenden Eigenschaft sowie den festzulegenden Wert angibt.

Konstruktoren

Name Beschreibung
CodeAttributeArgument()

Initialisiert eine neue Instanz der CodeAttributeArgument-Klasse.

CodeAttributeArgument(CodeExpression)

Initialisiert eine neue Instanz der CodeAttributeArgument Klasse mithilfe des angegebenen Werts.

CodeAttributeArgument(String, CodeExpression)

Initialisiert eine neue Instanz der CodeAttributeArgument Klasse mithilfe des angegebenen Namens und Werts.

Eigenschaften

Name Beschreibung
Name

Dient zum Abrufen oder Festlegen des Namens des Attributs.

Value

Dient zum Abrufen oder Festlegen des Werts für das Attributargument.

Methoden

Name Beschreibung
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Weitere Informationen