XmlObjectSerializer Osztály

Definíció

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.

A következőre érvényes:

Lásd még