Freigeben über


CodeAttributeArgument Klasse

Definition

Stellt ein Argument dar, das in einer Deklaration eines Metadatenattributs 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.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::CodeDom;
using namespace System::CodeDom::Compiler;

int main()
{
    // Declare a new type called Class1.
    CodeTypeDeclaration^ class1 = gcnew CodeTypeDeclaration("Class1");

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

    CodeAttributeArgument^ codeAttr =
        gcnew CodeAttributeArgument( gcnew CodePrimitiveExpression("This class is obsolete."));
    codeAttrDecl = gcnew 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, gcnew CodeGeneratorOptions());
}

// The CPP code generator produces the following source code for the preceeding example code:
//
//[System.Serializable()]
//[System.Obsolete("This class is obsolete.")]
//public class Class1 {
//}
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 verwendet werden, um entweder den Wert für ein einzelnes Argument eines Attributkonstruktors oder einen Wert darzustellen, 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 Arguments Auflistung eines für jedes Argument ein CodeAttributeArgument hinzuCodeAttributeDeclaration. Nur die Value -Eigenschaft der einzelnen 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 angeben, der den Namen der festzulegenden Eigenschaft sowie den festzulegenden Wert angibt.

Konstruktoren

CodeAttributeArgument()

Initialisiert eine neue Instanz der CodeAttributeArgument-Klasse.

CodeAttributeArgument(CodeExpression)

Initialisiert eine neue Instanz der CodeAttributeArgument-Klasse unter Verwendung des angegebenen Werts.

CodeAttributeArgument(String, CodeExpression)

Initialisiert eine neue Instanz der CodeAttributeArgument-Klasse unter Verwendung des angegebenen Namens und Werts.

Eigenschaften

Name

Ruft den Namen des Attributs ab oder legt diesen fest.

Value

Ruft den Wert für das Attributargument ab oder legt diesen fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

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

(Geerbt von Object)

Gilt für:

Weitere Informationen