XmlObjectSerializer Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Az objektumok XML-adatfolyamként vagy dokumentumként való szerializálásához használt alaposztályt tartalmazza. Ez az osztály absztrakt.
public ref class XmlObjectSerializer abstract
public abstract class XmlObjectSerializer
type XmlObjectSerializer = class
Public MustInherit Class XmlObjectSerializer
- Öröklődés
-
XmlObjectSerializer
- Származtatott
Példák
Az alábbi példa egy paramétert tartalmazó WriteObjectWithInstance metódust XmlObjectSerializer mutat be. A metódus szerializál egy objektumot a DataContractSerializerNetDataContractSerializer metódus vagy meghívásával WriteObject .
public class Test
{
private void WriteObjectWithInstance(XmlObjectSerializer xm, Company graph,
string fileName)
{
// Use either the XmlDataContractSerializer or NetDataContractSerializer,
// or any other class that inherits from XmlObjectSerializer to write with.
Console.WriteLine(xm.GetType());
FileStream fs = new FileStream(fileName, FileMode.Create);
XmlDictionaryWriter writer = XmlDictionaryWriter.CreateTextWriter(fs);
xm.WriteObject(writer, graph);
Console.WriteLine("Done writing {0}", fileName);
}
private void Run()
{
// Create the object to write to a file.
Company graph = new Company();
graph.Name = "cohowinery.com";
// Create a DataContractSerializer and a NetDataContractSerializer.
// Pass either one to the WriteObjectWithInstance method.
DataContractSerializer dcs = new DataContractSerializer(typeof(Company));
NetDataContractSerializer ndcs = new NetDataContractSerializer();
WriteObjectWithInstance(dcs, graph, @"datacontract.xml");
WriteObjectWithInstance(ndcs, graph, @"netDatacontract.xml");
}
[DataContract]
public class Company
{
[DataMember]
public string Name;
}
static void Main()
{
try
{
Console.WriteLine("Starting");
Test t = new Test();
t.Run();
Console.WriteLine("Done");
Console.ReadLine();
}
catch (InvalidDataContractException iExc)
{
Console.WriteLine("You have an invalid data contract: ");
Console.WriteLine(iExc.Message);
Console.ReadLine();
}
catch (SerializationException serExc)
{
Console.WriteLine("There is a problem with the instance:");
Console.WriteLine(serExc.Message);
Console.ReadLine();
}
catch (QuotaExceededException qExc)
{
Console.WriteLine("The quota has been exceeded");
Console.WriteLine(qExc.Message);
Console.ReadLine();
}
catch (Exception exc)
{
Console.WriteLine(exc.Message);
Console.WriteLine(exc.ToString());
Console.ReadLine();
}
}
Public Class Test
Private Sub WriteObjectWithInstance(ByVal xm As XmlObjectSerializer, _
ByVal graph As Company, ByVal fileName As String)
' Use either the XmlDataContractSerializer or NetDataContractSerializer,
' or any other class that inherits from XmlObjectSerializer to write with.
Console.WriteLine(xm.GetType())
Dim fs As New FileStream(fileName, FileMode.Create)
Dim writer As XmlDictionaryWriter = XmlDictionaryWriter.CreateTextWriter(fs)
xm.WriteObject(writer, graph)
Console.WriteLine("Done writing {0}", fileName)
End Sub
Private Sub Run()
' Create the object to write to a file.
Dim graph As New Company()
graph.Name = "cohowinery.com"
' Create a DataContractSerializer and a NetDataContractSerializer.
' Pass either one to the WriteObjectWithInstance method.
Dim dcs As New DataContractSerializer(GetType(Company))
Dim ndcs As New NetDataContractSerializer()
WriteObjectWithInstance(dcs, graph, "datacontract.xml")
WriteObjectWithInstance(ndcs, graph, "netDatacontract.xml")
End Sub
<DataContract()> _
Public Class Company
<DataMember()> _
Public Name As String
End Class
Shared Sub Main()
Try
Console.WriteLine("Starting")
Dim t As New Test()
t.Run()
Console.WriteLine("Done")
Console.ReadLine()
Catch iExc As InvalidDataContractException
Console.WriteLine("You have an invalid data contract: ")
Console.WriteLine(iExc.Message)
Console.ReadLine()
Catch serExc As SerializationException
Console.WriteLine("There is a problem with the instance:")
Console.WriteLine(serExc.Message)
Console.ReadLine()
Catch qExc As QuotaExceededException
Console.WriteLine("The quota has been exceeded")
Console.WriteLine(qExc.Message)
Console.ReadLine()
Catch exc As Exception
Console.WriteLine(exc.Message)
Console.WriteLine(exc.ToString())
Console.ReadLine()
End Try
End Sub
End Class
Megjegyzések
Bővítse ki a XmlObjectSerializer saját szerializálót az objektumok szerializálásához és deszerializálásához. Az DataContractSerializer osztály és az NetDataContractSerializer osztály örökli az XmlObjectSerializer osztályt, és az adatszerződési szabályoknak megfelelő objektumok szerializálására és deszerializálására szolgál (a DataContractAttribute használatával létrehozott objektumok).DataMemberAttribute
Megjegyzések az implementálókhoz
Ha örököl, XmlObjectSerializerfelül kell bírálnia a következő tagokat: WriteStartObject(XmlDictionaryWriter, Object), WriteObjectContent(XmlDictionaryWriter, Object), WriteEndObject(XmlDictionaryWriter). Emellett az IsStartObject olvasáshoz és a deszerializáláshoz a módszereket és ReadObject módszereket is végre kell hajtani.
Konstruktorok
| Name | Description |
|---|---|
| XmlObjectSerializer() |
Inicializálja a XmlObjectSerializer osztály új példányát. |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| IsStartObject(XmlDictionaryReader) |
Beolvas egy értéket, amely meghatározza, hogy a XmlDictionaryReader rendszer egy olvasható XML-elem fölé helyezi-e. |
| IsStartObject(XmlReader) |
Beolvas egy értéket, amely meghatározza, hogy a XmlReader rendszer egy olvasható XML-elem fölé helyezi-e. |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ReadObject(Stream) |
Beolvassa az XML-adatfolyamot vagy -dokumentumot a Stream deszerializált objektummal, és visszaadja. |
| ReadObject(XmlDictionaryReader, Boolean) |
Beolvassa az XML-adatfolyamot vagy -dokumentumot egy XmlDictionaryReader deszerializált objektummal, és visszaadja azt. Azt is megadhatja, hogy a szerializáló elolvassa-e az adatokat, mielőtt megkísérli elolvasni. |
| ReadObject(XmlDictionaryReader) |
Beolvassa az XML-dokumentumot vagy streamet egy XmlDictionaryReader deszerializált objektummal, és visszaadja azt. |
| ReadObject(XmlReader, Boolean) |
Beolvassa az XML-dokumentumot vagy streamet egy XmlReader deszerializált objektummal, és visszaadja azt. Azt is megadhatja, hogy a szerializáló elolvassa-e az adatokat, mielőtt megkísérli elolvasni. |
| ReadObject(XmlReader) |
Beolvassa az XML-dokumentumot vagy streamet egy XmlReader deszerializált objektummal, és visszaadja azt. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
| WriteEndObject(XmlDictionaryWriter) |
Az objektumadatok végét záró XML-elemként írja az XML-dokumentumba, vagy streamel egy XmlDictionaryWriter. |
| WriteEndObject(XmlWriter) |
Az objektumadatok végét záró XML-elemként írja az XML-dokumentumba, vagy streamel egy XmlWriter. |
| WriteObject(Stream, Object) |
Az objektum teljes tartalmát (kezdését, tartalmát és végét) a megadott StreamXML-dokumentumba vagy streambe írja. |
| WriteObject(XmlDictionaryWriter, Object) |
Az objektum teljes tartalmát (kezdését, tartalmát és végét) a megadott XmlDictionaryWriterXML-dokumentumba vagy streambe írja. |
| WriteObject(XmlWriter, Object) |
Az objektum teljes tartalmát (kezdését, tartalmát és végét) a megadott XmlWriterXML-dokumentumba vagy streambe írja. |
| WriteObjectContent(XmlDictionaryWriter, Object) |
Csak az objektum tartalmának írása az XML-dokumentumba vagy streamelés a megadott XmlDictionaryWriterhasználatával. |
| WriteObjectContent(XmlWriter, Object) |
Csak az objektum tartalmát írja be az XML-dokumentumba vagy a megadott XmlWriteradatfolyamba. |
| WriteStartObject(XmlDictionaryWriter, Object) |
Az objektum adatainak kezdetét nyitható XML-elemként írja a megadott XmlDictionaryWriterparanccsal. |
| WriteStartObject(XmlWriter, Object) |
Az objektum adatainak kezdetét nyitható XML-elemként írja a megadott XmlWriterparanccsal. |