Specifica che XmlSerializer deve serializzare il membro della classe come attributo XML.
System.Attribute
System.Xml.Serialization.XmlAttributeAttribute
Spazio dei nomi: System.Xml.Serialization
Assembly: System.Xml (in System.Xml.dll)
<AttributeUsageAttribute(AttributeTargets.Property Or AttributeTargets.Field Or AttributeTargets.Parameter Or AttributeTargets.ReturnValue)> _ Public Class XmlAttributeAttribute _ Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Parameter|AttributeTargets.ReturnValue)] public class XmlAttributeAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Property|AttributeTargets::Field|AttributeTargets::Parameter|AttributeTargets::ReturnValue)] public ref class XmlAttributeAttribute : public Attribute
[<AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Parameter|AttributeTargets.ReturnValue)>] type XmlAttributeAttribute = class inherit Attribute end
Il tipo XmlAttributeAttribute espone i seguenti membri.
| Nome | Descrizione | |
|---|---|---|
|
XmlAttributeAttribute() | Inizializza una nuova istanza della classe XmlAttributeAttribute. |
|
XmlAttributeAttribute(String) | Inizializza una nuova istanza della classe XmlAttributeAttribute e specifica il nome dell'attributo XML generato. |
|
XmlAttributeAttribute(Type) | Inizializza una nuova istanza della classe XmlAttributeAttribute. |
|
XmlAttributeAttribute(String, Type) | Inizializza una nuova istanza della classe XmlAttributeAttribute. |
| Nome | Descrizione | |
|---|---|---|
|
AttributeName | Recupera o imposta il nome dell'attributo XML. |
|
DataType | Ottiene o imposta il tipo di dati XSD dell'attributo XML generato da XmlSerializer. |
|
Form | Ottiene o imposta un valore che indica se il nome dell'attributo XML generato da XmlSerializer è completo. |
|
Namespace | Ottiene o imposta lo spazio dei nomi XML dell'attributo XML. |
|
Type | Ottiene o imposta il tipo complesso dell'attributo XML. |
|
TypeId | Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute. (Ereditato da Attribute) |
| Nome | Descrizione | |
|---|---|---|
|
Equals | Infrastruttura. Restituisce un valore che indica se l'istanza è uguale a un oggetto specificato. (Ereditato da Attribute) |
|
Finalize | Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object) |
|
GetHashCode | Restituisce il codice hash per l'istanza. (Ereditato da Attribute) |
|
GetType | Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
|
IsDefaultAttribute | Quando è sottoposto a override in una classe derivata, indica se il valore di questa istanza è il valore predefinito della classe derivata. (Ereditato da Attribute) |
|
Match | Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato. (Ereditato da Attribute) |
|
MemberwiseClone | Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object) |
|
ToString | Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
| Nome | Descrizione | |
|---|---|---|
|
_Attribute.GetIDsOfNames | Esegue il mapping di un set di nomi a un set corrispondente di ID di invio. (Ereditato da Attribute) |
|
_Attribute.GetTypeInfo | Recupera le informazioni sul tipo relative a un oggetto, che possono essere utilizzate per ottenere informazioni sul tipo relative a un'interfaccia. (Ereditato da Attribute) |
|
_Attribute.GetTypeInfoCount | Recupera il numero delle interfacce di informazioni di tipo fornite da un oggetto (0 o 1). (Ereditato da Attribute) |
|
_Attribute.Invoke | Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da Attribute) |
XmlAttributeAttribute appartiene a una famiglia di attributi che controlla come XmlSerializer serializza o deserializza un oggetto. Per un elenco completo di attributi analoghi, vedere Attributes That Control XML Serialization.
Quando è applicato a un campo pubblico o a una proprietà, XmlAttributeAttribute informa XmlSerializer di serializzare il membro come attributo XML. Per impostazione predefinita, XmlSerializer serializza i campi pubblici e le proprietà come elementi XML.
È possibile assegnare XmlAttributeAttribute solo a campi pubblici o proprietà pubbliche che restituiscono un valore o una matrice di valori mappabile a uno dei tipi semplici XSD (XML Schema Definition Language), inclusi tutti i tipi di dati incorporati derivati dal tipo anySimpleType XSD. I tipi possibili includono tutti i tipi mappabili ai tipi semplici XSD, tra cui Guid e Char e le enumerazioni. Per un elenco di tipi XSD e del relativo tipo di mapping ai tipi di dati .NET, vedere la proprietà DataType.
Esistono due attributi speciali che è possibile impostare con l'XmlAttributeAttribute: gli attributi xml:lang, che specifica il linguaggio, e xml:space, che specifica come gestire lo spazio. Questi attributi trasmettono le informazioni pertinenti solo a un'applicazione che elabora l'XML. Nel codice riportato di seguito sono presenti alcuni esempi di impostazioni.
[XmlAttribute("xml:lang")] public string Lang; // Set this to 'default' or 'preserve'. [XmlAttribute("space", Namespace = "http://www.w3.org/XML/1998/namespace")] public string Space [Visual Basic] <XmlAttribute("xml:lang")> _ Public Lang As String ' Set this to 'default' or 'preserve'. <XmlAttribute("space", _ Namespace:= "http://www.w3.org/XML/1998/namespace")> _ Public Space As String
Per ulteriori informazioni sull'utilizzo di attributi, vedere Estensione di metadati mediante attributi.
Nota
|
|---|
|
Nel codice è possibile utilizzare la parola XmlAttribute anziché la forma più estesa XmlAttributeAttribute. |
Nell'esempio seguente viene serializzata una classe nella quale sono contenuti più campi ai quali è applicato XmlAttributeAttribute.
Option Explicit Option Strict Imports System Imports System.IO Imports System.Xml Imports System.Xml.Serialization Imports System.Xml.Schema Public Class Group <XmlAttribute(Namespace := "http://www.cpandl.com")> _ Public GroupName As String <XmlAttribute(DataType := "base64Binary")> _ Public GroupNumber() As Byte <XmlAttribute(DataType := "date", AttributeName := "CreationDate")> _ Public Today As DateTime End Class Public Class Run Public Shared Sub Main() Dim test As New Run() test.SerializeObject("Attributes.xml") End Sub Public Sub SerializeObject(ByVal filename As String) ' Create an instance of the XmlSerializer class. Dim mySerializer As New XmlSerializer(GetType(Group)) ' Writing the file requires a TextWriter. Dim writer As New StreamWriter(filename) ' Create an instance of the class that will be serialized. Dim myGroup As New Group() ' Set the object properties. myGroup.GroupName = ".NET" Dim hexByte() As Byte = {Convert.ToByte(100), Convert.ToByte(50)} myGroup.GroupNumber = hexByte Dim myDate As New DateTime(2001, 1, 10) myGroup.Today = myDate ' Serialize the class, and close the TextWriter. mySerializer.Serialize(writer, myGroup) writer.Close() End Sub End Class
using System; using System.IO; using System.Xml; using System.Xml.Serialization; using System.Xml.Schema; public class Group { [XmlAttribute (Namespace = "http://www.cpandl.com")] public string GroupName; [XmlAttribute(DataType = "base64Binary")] public Byte [] GroupNumber; [XmlAttribute(DataType = "date", AttributeName = "CreationDate")] public DateTime Today; } public class Run { public static void Main() { Run test = new Run(); test.SerializeObject("Attributes.xml"); } public void SerializeObject(string filename) { // Create an instance of the XmlSerializer class. XmlSerializer mySerializer = new XmlSerializer(typeof(Group)); // Writing the file requires a TextWriter. TextWriter writer = new StreamWriter(filename); // Create an instance of the class that will be serialized. Group myGroup = new Group(); // Set the object properties. myGroup.GroupName = ".NET"; Byte [] hexByte = new Byte[2]{Convert.ToByte(100), Convert.ToByte(50)}; myGroup.GroupNumber = hexByte; DateTime myDate = new DateTime(2001,1,10); myGroup.Today = myDate; // Serialize the class, and close the TextWriter. mySerializer.Serialize(writer, myGroup); writer.Close(); } }
#using <System.Xml.dll> #using <System.dll> using namespace System; using namespace System::IO; using namespace System::Xml; using namespace System::Xml::Serialization; using namespace System::Xml::Schema; public ref class Group { public: [XmlAttributeAttribute(Namespace="http://www.cpandl.com")] String^ GroupName; [XmlAttributeAttribute(DataType="base64Binary")] array<Byte>^GroupNumber; [XmlAttributeAttribute(DataType="date",AttributeName="CreationDate")] DateTime Today; }; void SerializeObject( String^ filename ) { // Create an instance of the XmlSerializer class. XmlSerializer^ mySerializer = gcnew XmlSerializer( Group::typeid ); // Writing the file requires a TextWriter. TextWriter^ writer = gcnew StreamWriter( filename ); // Create an instance of the class that will be serialized. Group^ myGroup = gcnew Group; // Set the object properties. myGroup->GroupName = ".NET"; array<Byte>^hexByte = {Convert::ToByte( 100 ),Convert::ToByte( 50 )}; myGroup->GroupNumber = hexByte; DateTime myDate = DateTime(2001,1,10); myGroup->Today = myDate; // Serialize the class, and close the TextWriter. mySerializer->Serialize( writer, myGroup ); writer->Close(); } int main() { SerializeObject( "Attributes.xml" ); }
.NET Framework
Supportato in: 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Supportato in: 4, 3.5 SP1Supportato in:
Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Nota