XmlElementAttributes 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 una raccolta di oggetti XmlElementAttribute usati da XmlSerializer per eseguire l'override della modalità predefinita di serializzazione di una classe.
public ref class XmlElementAttributes : System::Collections::IList
public ref class XmlElementAttributes : System::Collections::CollectionBase
public class XmlElementAttributes : System.Collections.IList
public class XmlElementAttributes : System.Collections.CollectionBase
type XmlElementAttributes = class
interface ICollection
interface IEnumerable
interface IList
type XmlElementAttributes = class
inherit CollectionBase
Public Class XmlElementAttributes
Implements IList
Public Class XmlElementAttributes
Inherits CollectionBase
- Ereditarietà
-
XmlElementAttributes
- Ereditarietà
- Implementazioni
Esempio
L'esempio seguente serializza la Transportation
classe , che contiene un singolo campo denominato Vehicles
che restituisce un oggetto ArrayList. Nell'esempio vengono prima applicati due istanze della XmlElementAttribute classe al Vehicles
campo che specifica i tipi di oggetti inseriti XmlSerializer nella matrice. Nell'esempio vengono quindi creati due XmlElementAttribute oggetti per eseguire l'override del comportamento degli attributi applicati alla Vehicles
proprietà . I due oggetti di override vengono aggiunti all'insieme XmlElementAttributes di un oggetto XmlAttributes. Infine, l'esempio aggiunge a XmlAttributes un XmlAttributeOverridesoggetto , consentendo XmlSerializer a di inserire i nuovi tipi di oggetto nell'oggetto ArrayList restituito dal Vehicles
campo .
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;
using namespace System::Collections;
using namespace System::Xml;
public ref class Car
{
public:
String^ Name;
};
public ref class Plane
{
public:
String^ Name;
};
public ref class Truck
{
public:
String^ Name;
};
public ref class Train
{
public:
String^ Name;
};
public ref class Transportation
{
public:
// Override these two XmlElementAttributes.
[XmlElement(Car::typeid),
XmlElement(Plane::typeid)]
ArrayList^ Vehicles;
};
XmlSerializer^ CreateOverrider()
{
// Create XmlAtrributes and XmlAttributeOverrides instances.
XmlAttributes^ attrs = gcnew XmlAttributes;
XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides;
/* Create an XmlElementAttributes object to override
one of the attributes applied to the Vehicles property. */
XmlElementAttribute^ xElement1 = gcnew XmlElementAttribute( Truck::typeid );
// Add the XmlElementAttribute to the collection.
attrs->XmlElements->Add( xElement1 );
/* Create a second XmlElementAttribute and
add it to the collection. */
XmlElementAttribute^ xElement2 = gcnew XmlElementAttribute( Train::typeid );
attrs->XmlElements->Add( xElement2 );
/* Add the XmlAttributes to the XmlAttributeOverrides,
specifying the member to override. */
xOver->Add( Transportation::typeid, "Vehicles", attrs );
// Create the XmlSerializer, and return it.
XmlSerializer^ xSer = gcnew XmlSerializer( Transportation::typeid,xOver );
return xSer;
}
void SerializeObject( String^ filename )
{
// Create an XmlSerializer instance.
XmlSerializer^ xSer = CreateOverrider();
// Create the object.
Transportation^ myTransportation = gcnew Transportation;
/* Create two new, overriding objects that can be
inserted into the Vehicles array. */
myTransportation->Vehicles = gcnew ArrayList;
Truck^ myTruck = gcnew Truck;
myTruck->Name = "MyTruck";
Train^ myTrain = gcnew Train;
myTrain->Name = "MyTrain";
myTransportation->Vehicles->Add( myTruck );
myTransportation->Vehicles->Add( myTrain );
TextWriter^ writer = gcnew StreamWriter( filename );
xSer->Serialize( writer, myTransportation );
}
int main()
{
SerializeObject( "OverrideElement.xml" );
}
using System;
using System.IO;
using System.Xml.Serialization;
using System.Collections;
using System.Xml;
public class Transportation
{
// Override these two XmlElementAttributes.
[XmlElement(typeof(Car)),
XmlElement(typeof(Plane))]
public ArrayList Vehicles;
}
public class Car
{
public string Name;
}
public class Plane
{
public string Name;
}
public class Truck
{
public string Name;
}
public class Train
{
public string Name;
}
public class Test
{
public static void Main()
{
Test t = new Test();
t.SerializeObject("OverrideElement.xml");
}
public XmlSerializer CreateOverrider()
{
// Create XmlAtrributes and XmlAttributeOverrides instances.
XmlAttributes attrs = new XmlAttributes();
XmlAttributeOverrides xOver =
new XmlAttributeOverrides();
/* Create an XmlElementAttributes object to override
one of the attributes applied to the Vehicles property. */
XmlElementAttribute xElement1 =
new XmlElementAttribute(typeof(Truck));
// Add the XmlElementAttribute to the collection.
attrs.XmlElements.Add(xElement1);
/* Create a second XmlElementAttribute and
add it to the collection. */
XmlElementAttribute xElement2 =
new XmlElementAttribute(typeof(Train));
attrs.XmlElements.Add(xElement2);
/* Add the XmlAttributes to the XmlAttributeOverrides,
specifying the member to override. */
xOver.Add(typeof(Transportation), "Vehicles", attrs);
// Create the XmlSerializer, and return it.
XmlSerializer xSer = new XmlSerializer
(typeof(Transportation), xOver);
return xSer;
}
public void SerializeObject(string filename)
{
// Create an XmlSerializer instance.
XmlSerializer xSer = CreateOverrider();
// Create the object.
Transportation myTransportation =
new Transportation();
/* Create two new, overriding objects that can be
inserted into the Vehicles array. */
myTransportation.Vehicles = new ArrayList();
Truck myTruck = new Truck();
myTruck.Name = "MyTruck";
Train myTrain = new Train();
myTrain.Name = "MyTrain";
myTransportation.Vehicles.Add(myTruck);
myTransportation.Vehicles.Add(myTrain);
TextWriter writer = new StreamWriter(filename);
xSer.Serialize(writer, myTransportation);
}
}
Imports System.IO
Imports System.Xml.Serialization
Imports System.Collections
Imports System.Xml
Public Class Transportation
' Override these two XmlElementAttributes.
<XmlElement(GetType(Car)), _
XmlElement(GetType(Plane))> _
Public Vehicles As ArrayList
End Class
Public Class Car
Public Name As String
End Class
Public Class Plane
Public Name As String
End Class
Public Class Truck
Public Name As String
End Class
Public Class Train
Public Name As String
End Class
Public Class Test
Public Shared Sub Main()
Dim t As New Test()
t.SerializeObject("OverrideElement.xml")
End Sub
Public Function CreateOverrider() As XmlSerializer
' Create XmlAtrributes and XmlAttributeOverrides instances.
Dim attrs As New XmlAttributes()
Dim xOver As New XmlAttributeOverrides()
' Create an XmlElementAttributes object to override
' one of the attributes applied to the Vehicles property.
Dim xElement1 As New XmlElementAttribute(GetType(Truck))
' Add the XmlElementAttribute to the collection.
attrs.XmlElements.Add(xElement1)
' Create a second XmlElementAttribute and
' add it to the collection.
Dim xElement2 As New XmlElementAttribute(GetType(Train))
attrs.XmlElements.Add(xElement2)
' Add the XmlAttributes to the XmlAttributeOverrides,
' specifying the member to override.
xOver.Add(GetType(Transportation), "Vehicles", attrs)
' Create the XmlSerializer, and return it.
Dim xSer As New XmlSerializer(GetType(Transportation), xOver)
Return xSer
End Function
Public Sub SerializeObject(ByVal filename As String)
' Create an XmlSerializer instance.
Dim xSer As XmlSerializer = CreateOverrider()
' Create the object.
Dim myTransportation As New Transportation()
' Create two new, overriding objects that can be
' inserted into the Vehicles array.
myTransportation.Vehicles = New ArrayList()
Dim myTruck As New Truck()
myTruck.Name = "MyTruck"
Dim myTrain As New Train()
myTrain.Name = "MyTrain"
myTransportation.Vehicles.Add(myTruck)
myTransportation.Vehicles.Add(myTrain)
Dim writer As New StreamWriter(filename)
xSer.Serialize(writer, myTransportation)
End Sub
End Class
Commenti
L'oggetto XmlElementAttributes XmlElements viene restituito dalla proprietà della XmlAttributes classe . Usando la XmlAttributeOverrides classe e la XmlAttributes classe , è possibile eseguire l'override del modo predefinito in cui serializza XmlSerializer una classe.
Costruttori
XmlElementAttributes() |
Inizializza una nuova istanza della classe XmlElementAttributes. |
Proprietà
Capacity |
Ottiene o imposta il numero di elementi che CollectionBase può contenere. (Ereditato da CollectionBase) |
Count |
Ottiene il numero di elementi contenuti in ICollection. |
Count |
Ottiene il numero di elementi contenuti nell'istanza di CollectionBase. Questa proprietà non può essere sottoposta a override. (Ereditato da CollectionBase) |
InnerList |
Ottiene un ArrayList contenente l'elenco degli elementi presenti nell'istanza CollectionBase. (Ereditato da CollectionBase) |
Item[Int32] |
Ottiene o imposta l'elemento in corrispondenza dell'indice specificato. |
List |
Ottiene un IList contenente l'elenco degli elementi presenti nell'istanza CollectionBase. (Ereditato da CollectionBase) |
Metodi
Add(XmlElementAttribute) |
Aggiunge un oggetto XmlElementAttribute alla raccolta. |
Clear() |
Rimuove tutti gli elementi da IList. |
Clear() |
Consente di rimuovere tutti gli oggetti dall'istanza CollectionBase. Questo metodo non può essere sottoposto a override. (Ereditato da CollectionBase) |
Contains(XmlElementAttribute) |
Determina se la raccolta contiene l'oggetto specificato. |
CopyTo(XmlElementAttribute[], Int32) |
Copia XmlElementAttributes o una parte di esso in una matrice unidimensionale. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetEnumerator() |
Restituisce un enumeratore che consente di eseguire l'iterazione di una raccolta. |
GetEnumerator() |
Restituisce un enumeratore per lo scorrimento dell'istanza di CollectionBase. (Ereditato da CollectionBase) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
IndexOf(XmlElementAttribute) |
Ottiene l'indice della classe XmlElementAttribute specificata. |
Insert(Int32, XmlElementAttribute) |
Inserisce un oggetto XmlElementAttribute nella raccolta. |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OnClear() |
Esegue processi personalizzati aggiuntivi quando viene cancellato il contenuto dell'istanza di CollectionBase. (Ereditato da CollectionBase) |
OnClearComplete() |
Esegue procedure personalizzate aggiuntive prima di cancellare il contenuto dell'istanza di CollectionBase. (Ereditato da CollectionBase) |
OnInsert(Int32, Object) |
Esegue procedure personalizzate aggiuntive prima di inserire un nuovo elemento nell'istanza di CollectionBase. (Ereditato da CollectionBase) |
OnInsertComplete(Int32, Object) |
Esegue procedure personalizzate aggiuntive dopo aver inserito un nuovo elemento nell'istanza di CollectionBase. (Ereditato da CollectionBase) |
OnRemove(Int32, Object) |
Consente di eseguire procedure personalizzate aggiuntive durante l'eliminazione di un elemento dall'istanza CollectionBase. (Ereditato da CollectionBase) |
OnRemoveComplete(Int32, Object) |
Esegue procedure personalizzate aggiuntive dopo della rimozione di un elemento dall'istanza di CollectionBase. (Ereditato da CollectionBase) |
OnSet(Int32, Object, Object) |
Esegue procedure personalizzate aggiuntive prima di impostare un valore nell'istanza di CollectionBase. (Ereditato da CollectionBase) |
OnSetComplete(Int32, Object, Object) |
Esegue procedure personalizzate aggiuntive dopo aver impostato un valore nell'istanza di CollectionBase. (Ereditato da CollectionBase) |
OnValidate(Object) |
Esegue processi personalizzati aggiuntivi durante la convalida di un valore. (Ereditato da CollectionBase) |
Remove(XmlElementAttribute) |
Rimuove l'oggetto specificato dalla raccolta. |
RemoveAt(Int32) |
Rimuove l'elemento IList in corrispondenza dell'indice specificato. |
RemoveAt(Int32) |
Consente di rimuovere la voce in corrispondenza dell'indice specificato dell'istanza CollectionBase. Questo metodo non può essere sottoposto a override. (Ereditato da CollectionBase) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
ICollection.CopyTo(Array, Int32) |
Copia gli elementi di ICollection in Array a partire da un particolare indice Array. |
ICollection.CopyTo(Array, Int32) |
Copia l'intero oggetto CollectionBase in un oggetto Array compatibile unidimensionale, a partire dall'indice specificato della matrice di destinazione. (Ereditato da CollectionBase) |
ICollection.IsSynchronized |
Ottiene un valore che indica se l'accesso a ICollection è sincronizzato (thread-safe). |
ICollection.IsSynchronized |
Ottiene un valore che indica se l'accesso a CollectionBase è sincronizzato (thread-safe). (Ereditato da CollectionBase) |
ICollection.SyncRoot |
Ottiene un oggetto che può essere usato per sincronizzare l'accesso a ICollection. |
ICollection.SyncRoot |
Ottiene un oggetto che può essere usato per sincronizzare l'accesso a CollectionBase. (Ereditato da CollectionBase) |
IList.Add(Object) |
Aggiunge un elemento a IList. |
IList.Add(Object) |
Aggiunge un oggetto alla fine di CollectionBase. (Ereditato da CollectionBase) |
IList.Contains(Object) |
Stabilisce se IList contiene un valore specifico. |
IList.Contains(Object) |
Consente di stabilire se CollectionBase contiene un elemento specifico. (Ereditato da CollectionBase) |
IList.IndexOf(Object) |
Determina l'indice di un elemento specifico in IList. |
IList.IndexOf(Object) |
Cerca l'oggetto Object specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intero CollectionBase. (Ereditato da CollectionBase) |
IList.Insert(Int32, Object) |
Inserisce un elemento in IList in corrispondenza dell'indice specificato. |
IList.Insert(Int32, Object) |
Inserisce un elemento in CollectionBase in corrispondenza dell'indice specificato. (Ereditato da CollectionBase) |
IList.IsFixedSize |
Ottiene un valore che indica se IList ha dimensioni fisse. |
IList.IsFixedSize |
Ottiene un valore che indica se CollectionBase ha dimensioni fisse. (Ereditato da CollectionBase) |
IList.IsReadOnly |
Ottiene un valore che indica se IList è di sola lettura. |
IList.IsReadOnly |
Ottiene un valore che indica se CollectionBase è di sola lettura. (Ereditato da CollectionBase) |
IList.Item[Int32] |
Ottiene o imposta l'elemento in corrispondenza dell'indice specificato. |
IList.Item[Int32] |
Ottiene o imposta l'elemento in corrispondenza dell'indice specificato. (Ereditato da CollectionBase) |
IList.Remove(Object) |
Rimuove la prima occorrenza di un oggetto specifico da IList. |
IList.Remove(Object) |
Rimuove la prima occorrenza di un oggetto specifico da CollectionBase. (Ereditato da CollectionBase) |
Metodi di estensione
Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato. |
OfType<TResult>(IEnumerable) |
Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato. |
AsParallel(IEnumerable) |
Consente la parallelizzazione di una query. |
AsQueryable(IEnumerable) |
Converte un oggetto IEnumerable in un oggetto IQueryable. |