Classe XmlAttributeAttribute (System.Xml.Serialization)

Cambia visualizzazione:
ScriptFree
Riferimento a .NET Framework
Classe XmlAttributeAttribute
Il presente articolo è stato tradotto manualmente. Per visualizzare questa pagina e contemporaneamente visualizzarne il contenuto in lingua inglese, passare alla visualizzazione semplificata.

Specifica che XmlSerializer deve serializzare il membro della classe come attributo XML.

Gerarchia di ereditarietà

System.Object
  System.Attribute
    System.Xml.Serialization.XmlAttributeAttribute

Spazio dei nomi:  System.Xml.Serialization
Assembly:  System.Xml (in System.Xml.dll)
Sintassi

Visual Basic
<AttributeUsageAttribute(AttributeTargets.Property Or AttributeTargets.Field Or AttributeTargets.Parameter Or AttributeTargets.ReturnValue)> _
Public Class XmlAttributeAttribute _
	Inherits Attribute
C#
[AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Parameter|AttributeTargets.ReturnValue)]
public class XmlAttributeAttribute : Attribute
Visual C++
[AttributeUsageAttribute(AttributeTargets::Property|AttributeTargets::Field|AttributeTargets::Parameter|AttributeTargets::ReturnValue)]
public ref class XmlAttributeAttribute : public Attribute
F#
[<AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Parameter|AttributeTargets.ReturnValue)>]
type XmlAttributeAttribute =  
    class
        inherit Attribute
    end

Il tipo XmlAttributeAttribute espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo pubblico Supportato da XNA Framework d8db82dk.PortableClassLibrary(it-it,VS.100).gif XmlAttributeAttribute() Inizializza una nuova istanza della classe XmlAttributeAttribute.
Metodo pubblico Supportato da XNA Framework d8db82dk.PortableClassLibrary(it-it,VS.100).gif XmlAttributeAttribute(String) Inizializza una nuova istanza della classe XmlAttributeAttribute e specifica il nome dell'attributo XML generato.
Metodo pubblico Supportato da XNA Framework d8db82dk.PortableClassLibrary(it-it,VS.100).gif XmlAttributeAttribute(Type) Inizializza una nuova istanza della classe XmlAttributeAttribute.
Metodo pubblico Supportato da XNA Framework d8db82dk.PortableClassLibrary(it-it,VS.100).gif XmlAttributeAttribute(String, Type) Inizializza una nuova istanza della classe XmlAttributeAttribute.
In alto
Proprietà

  Nome Descrizione
Proprietà pubblica Supportato da XNA Framework d8db82dk.PortableClassLibrary(it-it,VS.100).gif AttributeName Recupera o imposta il nome dell'attributo XML.
Proprietà pubblica Supportato da XNA Framework d8db82dk.PortableClassLibrary(it-it,VS.100).gif DataType Ottiene o imposta il tipo di dati XSD dell'attributo XML generato da XmlSerializer.
Proprietà pubblica Supportato da XNA Framework d8db82dk.PortableClassLibrary(it-it,VS.100).gif Form Ottiene o imposta un valore che indica se il nome dell'attributo XML generato da XmlSerializer è completo.
Proprietà pubblica Supportato da XNA Framework d8db82dk.PortableClassLibrary(it-it,VS.100).gif Namespace Ottiene o imposta lo spazio dei nomi XML dell'attributo XML.
Proprietà pubblica Supportato da XNA Framework d8db82dk.PortableClassLibrary(it-it,VS.100).gif Type Ottiene o imposta il tipo complesso dell'attributo XML.
Proprietà pubblica TypeId Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute. (Ereditato da Attribute)
In alto
Metodi

  Nome Descrizione
Metodo pubblico Supportato da XNA Framework d8db82dk.PortableClassLibrary(it-it,VS.100).gif Equals Infrastruttura. Restituisce un valore che indica se l'istanza è uguale a un oggetto specificato. (Ereditato da Attribute)
Metodo protetto Supportato da XNA Framework d8db82dk.PortableClassLibrary(it-it,VS.100).gif 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)
Metodo pubblico Supportato da XNA Framework d8db82dk.PortableClassLibrary(it-it,VS.100).gif GetHashCode Restituisce il codice hash per l'istanza. (Ereditato da Attribute)
Metodo pubblico Supportato da XNA Framework d8db82dk.PortableClassLibrary(it-it,VS.100).gif GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblico 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)
Metodo pubblico Supportato da XNA Framework 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)
Metodo protetto Supportato da XNA Framework d8db82dk.PortableClassLibrary(it-it,VS.100).gif MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblico Supportato da XNA Framework d8db82dk.PortableClassLibrary(it-it,VS.100).gif ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
In alto
Implementazioni esplicite dell'interfaccia

  Nome Descrizione
Implementazione esplicita dell'interfaccia Metodo privato _Attribute.GetIDsOfNames Esegue il mapping di un set di nomi a un set corrispondente di ID di invio. (Ereditato da Attribute)
Implementazione esplicita dell'interfaccia Metodo privato _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)
Implementazione esplicita dell'interfaccia Metodo privato _Attribute.GetTypeInfoCount Recupera il numero delle interfacce di informazioni di tipo fornite da un oggetto (0 o 1). (Ereditato da Attribute)
Implementazione esplicita dell'interfaccia Metodo privato _Attribute.Invoke Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da Attribute)
In alto
Note

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.

C#
[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 Nota

Nel codice è possibile utilizzare la parola XmlAttribute anziché la forma più estesa XmlAttributeAttribute.

Esempi

Nell'esempio seguente viene serializzata una classe nella quale sono contenuti più campi ai quali è applicato XmlAttributeAttribute.

Visual Basic

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



C#

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();
   }
}
   


Visual C++

#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" );
}


Informazioni sulla versione

.NET Framework

Supportato in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Supportato in:
Piattaforme

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.
Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.
Vedere anche

Riferimenti