CodeAttributeArgument Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta un argomento utilizzato in una dichiarazione di attributo dei metadati.
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
- Ereditarietà
-
CodeAttributeArgument
- Attributi
Esempio
Il codice seguente crea una classe e aggiunge attributi di codice per dichiarare che la classe è serializzabile e obsoleta.
#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
Commenti
CodeAttributeArgument può essere usato per rappresentare il valore per un singolo argomento di un costruttore di attributi o un valore con cui inizializzare una proprietà dell'attributo.
La Value proprietà indica il valore dell'argomento. La Name proprietà, se usata, indica il nome di una proprietà dell'attributo a cui assegnare il valore.
Le dichiarazioni di attributo vengono spesso inizializzate con un numero di argomenti passati al costruttore dell'attributo in fase di esecuzione. Per fornire argomenti al costruttore di un attributo, aggiungere un CodeAttributeArgument oggetto per ogni argomento alla Arguments raccolta di un CodeAttributeDeclarationoggetto . Solo la Value proprietà di ogni CodeAttributeArgument oggetto deve essere inizializzata. L'ordine degli argomenti all'interno della raccolta deve corrispondere all'ordine degli argomenti nella firma del metodo del costruttore per l'attributo.
È anche possibile impostare le proprietà dell'attributo che non sono disponibili tramite il costruttore specificando un CodeAttributeArgument che indica il nome della proprietà da impostare, insieme al valore da impostare.
Costruttori
CodeAttributeArgument() |
Inizializza una nuova istanza della classe CodeAttributeArgument. |
CodeAttributeArgument(CodeExpression) |
Inizializza una nuova istanza della classe CodeAttributeArgument tramite il valore specificato. |
CodeAttributeArgument(String, CodeExpression) |
Consente l'inizializzazione di una nuova istanza della classe CodeAttributeArgumentcon il nome e il valore specificati. |
Proprietà
Name |
Ottiene o imposta il nome dell'attributo. |
Value |
Ottiene o imposta il valore dell'argomento dell'attributo. |
Metodi
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |