XmlSerializer.Deserialize XmlSerializer.Deserialize XmlSerializer.Deserialize XmlSerializer.Deserialize Method

定義

將 XML 文件還原序列化。Deserializes an XML document.

多載

Deserialize(Stream) Deserialize(Stream) Deserialize(Stream)

還原序列化指定 Stream 所包含的 XML 文件。Deserializes the XML document contained by the specified Stream.

Deserialize(TextReader) Deserialize(TextReader) Deserialize(TextReader)

還原序列化指定 TextReader 所包含的 XML 文件。Deserializes the XML document contained by the specified TextReader.

Deserialize(XmlSerializationReader) Deserialize(XmlSerializationReader) Deserialize(XmlSerializationReader) Deserialize(XmlSerializationReader)

還原序列化指定 XmlSerializationReader 所包含的 XML 文件。Deserializes the XML document contained by the specified XmlSerializationReader.

Deserialize(XmlReader) Deserialize(XmlReader) Deserialize(XmlReader)

還原序列化指定 XmlReader 所包含的 XML 文件。Deserializes the XML document contained by the specified XmlReader.

Deserialize(XmlReader, String) Deserialize(XmlReader, String) Deserialize(XmlReader, String)

還原序列化指定 XmlReader 和編碼樣式所包含的 XML 文件。Deserializes the XML document contained by the specified XmlReader and encoding style.

Deserialize(XmlReader, XmlDeserializationEvents) Deserialize(XmlReader, XmlDeserializationEvents) Deserialize(XmlReader, XmlDeserializationEvents)

還原序列化指定 XmlReader 包含的 XML 文件,並允許覆寫還原序列化期間發生的事件。Deserializes an XML document contained by the specified XmlReader and allows the overriding of events that occur during deserialization.

Deserialize(XmlReader, String, XmlDeserializationEvents) Deserialize(XmlReader, String, XmlDeserializationEvents) Deserialize(XmlReader, String, XmlDeserializationEvents)

使用指定 XmlReader 包含的資料,還原序列化物件。Deserializes the object using the data contained by the specified XmlReader.

Deserialize(Stream) Deserialize(Stream) Deserialize(Stream)

還原序列化指定 Stream 所包含的 XML 文件。Deserializes the XML document contained by the specified Stream.

public:
 System::Object ^ Deserialize(System::IO::Stream ^ stream);
public object Deserialize (System.IO.Stream stream);
member this.Deserialize : System.IO.Stream -> obj

參數

stream
Stream Stream Stream Stream

Stream,包含要還原序列化的 XML 文件。The Stream that contains the XML document to deserialize.

傳回

要進行還原序列化的 ObjectThe Object being deserialized.

範例

下列範例會還原序列化的物件使用Stream物件。The following example deserializes an object using a Stream object.

#using <System.Xml.dll>
#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;

// This is the class that will be deserialized.
public ref class OrderedItem
{
public:

    [XmlElement(Namespace="http://www.cpandl.com")]
    String^ ItemName;

    [XmlElement(Namespace="http://www.cpandl.com")]
    String^ Description;

    [XmlElement(Namespace="http://www.cohowinery.com")]
    Decimal UnitPrice;

    [XmlElement(Namespace="http://www.cpandl.com")]
    int Quantity;

    [XmlElement(Namespace="http://www.cohowinery.com")]
    Decimal LineTotal;

    // A custom method used to calculate price per item.
    void Calculate()
    {
        LineTotal = UnitPrice * Quantity;
    }
};

void DeserializeObject(String^ filename)
{
	Console::WriteLine("Reading with Stream");

	// Create an instance of the XmlSerializer.
	XmlSerializer^ serializer = gcnew XmlSerializer(OrderedItem::typeid);

	// Declare an object variable of the type to be deserialized.
	OrderedItem^ i;
	
	// Reading the XML document requires a FileStream.
	Stream^ reader = gcnew FileStream(filename, FileMode::Open);

	try
	{
		// Call the Deserialize method to restore the object's state.
		i = dynamic_cast<OrderedItem^>(serializer->Deserialize(reader));
	}
	finally
	{
		delete reader;
	}

	// Write out the properties of the object.
	Console::Write("{0}\t{1}\t{2}\t{3}\t{4}", i->ItemName, i->Description, i->UnitPrice, i->Quantity, i->LineTotal);
}

int main()
{
    // Read a purchase order.
    DeserializeObject( "simple.xml" );
}
using System;
using System.IO;
using System.Xml.Serialization;

// This is the class that will be deserialized.
public class OrderedItem
{
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public string ItemName;
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public string Description;
    [XmlElement(Namespace="http://www.cohowinery.com")]
    public decimal UnitPrice;
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public int Quantity;
    [XmlElement(Namespace="http://www.cohowinery.com")]
    public decimal LineTotal;
    // A custom method used to calculate price per item.
    public void Calculate()
    {
        LineTotal = UnitPrice * Quantity;
    }
}
 
public class Test
{
    public static void Main()
    {
        Test t = new Test();
        // Read a purchase order.
        t.DeserializeObject("simple.xml");
    }

    private void DeserializeObject(string filename)
    {   
        Console.WriteLine("Reading with Stream");
        // Create an instance of the XmlSerializer.
        XmlSerializer serializer = 
        new XmlSerializer(typeof(OrderedItem));
          
        // Declare an object variable of the type to be deserialized.
        OrderedItem i;

        using (Stream reader = new FileStream(filename, FileMode.Open))
        {
            // Call the Deserialize method to restore the object's state.
            i = (OrderedItem)serializer.Deserialize(reader);          
        }

        // Write out the properties of the object.
        Console.Write(
        i.ItemName + "\t" +
        i.Description + "\t" +
        i.UnitPrice + "\t" +
        i.Quantity + "\t" +
        i.LineTotal);
    }
}

Imports System
Imports System.IO
Imports System.Xml.Serialization
Imports Microsoft.VisualBasic


' This is the class that will be deserialized.
Public Class OrderedItem
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public ItemName As String

    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public Description As String
    
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public UnitPrice As Decimal
    
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public Quantity As Integer
    
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public LineTotal As Decimal
    
    'A custom method used to calculate price per item.
    Public Sub Calculate()
        LineTotal = UnitPrice * Quantity
    End Sub
End Class

Public Class Test
    
    Public Shared Sub Main()
        Dim t As New Test()
        ' Read a purchase order.
        t.DeserializeObject("simple.xml")
    End Sub
        
    Private Sub DeserializeObject(ByVal filename As String)
        Console.WriteLine("Reading with Stream")
        ' Create an instance of the XmlSerializer.
        Dim serializer As New XmlSerializer(GetType(OrderedItem))       
        
        ' Declare an object variable of the type to be deserialized.
        Dim i As OrderedItem

        Using reader As New Filestream(filename, FileMode.Open)

            ' Call the Deserialize method to restore the object's state.
            i = CType(serializer.Deserialize(reader), OrderedItem)
        End Using

        ' Write out the properties of the object.
        Console.Write(i.ItemName & ControlChars.Tab & _
                      i.Description & ControlChars.Tab & _
                      i.UnitPrice & ControlChars.Tab & _
                      i.Quantity & ControlChars.Tab & _
                      i.LineTotal)
    End Sub
End Class

<?xml version="1.0"?>
 <OrderedItem xmlns:inventory="http://www.cpandl.com" xmlns:money="http://www.cohowinery.com">
   <inventory:ItemName>Widget</inventory:ItemName>
   <inventory:Description>Regular Widget</inventory:Description>
   <money:UnitPrice>2.3</money:UnitPrice>
   <inventory:Quantity>10</inventory:Quantity>
   <money:LineTotal>23</money:LineTotal>
 </OrderedItem>

備註

還原序列化是讀取 XML 文件,並建構物件,強型別為 XML 結構描述 (XSD) 文件的程序。Deserialization is the process of reading an XML document and constructing an object that is strongly typed to the XML Schema (XSD) of the document.

之前還原序列化,XmlSerializer必須使用正在還原序列化的物件型別來建構。Before deserializing, an XmlSerializer must be constructed using the type of the object that is being deserialized.

使用stream參數來指定物件衍生自Stream類別,其設計目的是要寫入資料流。Use the stream parameter to specify an object that derives from the Stream class, which is designed to write to streams. 衍生自類別Stream類別包括:Classes that derive from the Stream class include:

注意

XmlSerializer無法還原序列化下列: 陣列ArrayList和陣列List<T>The XmlSerializer cannot deserialize the following: arrays of ArrayList and arrays of List<T>.

另請參閱

Deserialize(TextReader) Deserialize(TextReader) Deserialize(TextReader)

還原序列化指定 TextReader 所包含的 XML 文件。Deserializes the XML document contained by the specified TextReader.

public:
 System::Object ^ Deserialize(System::IO::TextReader ^ textReader);
public object Deserialize (System.IO.TextReader textReader);
member this.Deserialize : System.IO.TextReader -> obj

參數

textReader
TextReader TextReader TextReader TextReader

TextReader,包含要還原序列化的 XML 文件。The TextReader that contains the XML document to deserialize.

傳回

要進行還原序列化的 ObjectThe Object being deserialized.

例外狀況

在還原序列化期間發生錯誤。An error occurred during deserialization. 可以使用 InnerException 屬性取得原始例外狀況。The original exception is available using the InnerException property.

範例

下列範例會還原序列化的物件使用TextReader物件。The following example deserializes an object using a TextReader object.

#using <System.Xml.dll>
#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Xml::Serialization;

// This is the class that will be deserialized.
public ref class OrderedItem
{
public:
    String^ ItemName;
    String^ Description;
    Decimal UnitPrice;
    int Quantity;
    Decimal LineTotal;

    // A custom method used to calculate price per item.
    void Calculate()
    {
        LineTotal = UnitPrice * Quantity;
    }
};

void DeserializeObject( String^ filename )
{
    Console::WriteLine( "Reading with TextReader" );

    // Create an instance of the XmlSerializer specifying type.
    XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );

    /* Create a TextReader to read the file. Specify an
       Encoding to use. */
    TextReader^ reader = gcnew StreamReader( filename,Encoding::Unicode );

    // Declare an object variable of the type to be deserialized.
    OrderedItem^ i;

    // Use the Deserialize method to restore the object's state.
    i = dynamic_cast<OrderedItem^>(serializer->Deserialize( reader ));

    // Write out the properties of the object.
    Console::Write( "{0}\t{1}\t{2}\t{3}\t{4}", i->ItemName, i->Description, i->UnitPrice, i->Quantity, i->LineTotal );
}

int main()
{
    // Read a purchase order.
    DeserializeObject( "simple.xml" );
}
using System;
using System.IO;
using System.Text;
using System.Xml.Serialization;

// This is the class that will be deserialized.
public class OrderedItem
{
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public string ItemName;
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public string Description;
    [XmlElement(Namespace = "http://www.cohowinery.com")]
    public decimal UnitPrice;
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public int Quantity;
    [XmlElement(Namespace = "http://www.cohowinery.com")]
    public decimal LineTotal;
    // A custom method used to calculate price per item.
    public void Calculate()
    {
        LineTotal = UnitPrice * Quantity;
    }
}
 
public class Test
{
   public static void Main()
    {
        Test t = new Test();
        // Read a purchase order.
        t.DeserializeObject("simple.xml");
    }

    private void DeserializeObject(string filename)
    {   
        Console.WriteLine("Reading with TextReader");

        // Create an instance of the XmlSerializer specifying type.
        XmlSerializer serializer = 
        new XmlSerializer(typeof(OrderedItem));

        // Create a TextReader to read the file. 
        FileStream fs = new FileStream(filename, FileMode.OpenOrCreate);
        TextReader reader = new StreamReader(fs);
      
        // Declare an object variable of the type to be deserialized.
        OrderedItem i;

        // Use the Deserialize method to restore the object's state.
        i = (OrderedItem) serializer.Deserialize(reader);

        // Write out the properties of the object.
        Console.Write(
            i.ItemName + "\t" +
            i.Description + "\t" +
            i.UnitPrice + "\t" +
            i.Quantity + "\t" +
            i.LineTotal);
    }
}
Imports System
Imports System.IO
Imports System.Text
Imports System.Xml.Serialization
Imports Microsoft.VisualBasic

' This is the class that will be deserialized.
Public Class OrderedItem
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public ItemName As String

    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public Description As String
    
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public UnitPrice As Decimal
    
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public Quantity As Integer
    
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public LineTotal As Decimal
    ' A custom method used to calculate price per item.
    Public Sub Calculate()
        LineTotal = UnitPrice * Quantity
    End Sub
End Class
Public Class Test
    
    Public Shared Sub Main()
        Dim t As New Test()
        ' Read a purchase order.
        t.DeserializeObject("simple.xml")
    End Sub
    
    Private Sub DeserializeObject(filename As String)
        Console.WriteLine("Reading with TextReader")
        
        ' Create an instance of the XmlSerializer specifying type.
        Dim serializer As New XmlSerializer(GetType(OrderedItem))
        
        ' Create a TextReader to read the file. 
        Dim fs as New FileStream(filename, FileMode.OpenOrCreate)
        Dim reader As New StreamReader(fs)
        
        ' Declare an object variable of the type to be deserialized.
        Dim i As OrderedItem
        
        ' Use the Deserialize method to restore the object's state.
        i = CType(serializer.Deserialize(reader), OrderedItem)
        
        ' Write out the properties of the object.
        Console.Write(i.ItemName & ControlChars.Tab & _
                      i.Description & ControlChars.Tab & _
                      i.UnitPrice & ControlChars.Tab & _
                      i.Quantity & ControlChars.Tab & _
                      i.LineTotal)
    End Sub
End Class

備註

還原序列化是讀取 XML 文件的執行個體,並建構物件,強型別為 XML 結構描述 (XSD) 文件的程序。Deserialization is the process of reading an instance of an XML document and constructing an object that is strongly typed to the XML Schema (XSD) of the document.

之前還原序列化,XmlSerializer必須使用正在還原序列化的物件型別來建構。Before deserializing, an XmlSerializer must be constructed using the type of the object that is being deserialized.

繼承自類別TextReader包括StringReaderStreamReaderClasses that inherit from TextReader include StringReader and StreamReader. 如果您使用StreamReader將物件還原序列化,您必須建構StreamReader適當EncodingIf you are using a StreamReader to deserialize an object, you must construct the StreamReader with an appropriate Encoding. 指定 XML 文件的編碼會被忽略。The encoding specified by the XML document is ignored.

注意

若要使用的 XML 文件所指定的編碼方式,使用Deserialize多載,XmlReader改。To use the encoding specified by the XML document, use the Deserialize overload that takes an XmlReader instead. XmlReader會自動偵測並使用 XML 文件所指定的編碼方式。The XmlReader automatically detects and uses the encoding specified by the XML document.

注意

XmlSerializer無法還原序列化下列: 陣列ArrayList和陣列List<T>The XmlSerializer cannot deserialize the following: arrays of ArrayList and arrays of List<T>.

另請參閱

Deserialize(XmlSerializationReader) Deserialize(XmlSerializationReader) Deserialize(XmlSerializationReader) Deserialize(XmlSerializationReader)

還原序列化指定 XmlSerializationReader 所包含的 XML 文件。Deserializes the XML document contained by the specified XmlSerializationReader.

protected:
 virtual System::Object ^ Deserialize(System::Xml::Serialization::XmlSerializationReader ^ reader);
protected virtual object Deserialize (System.Xml.Serialization.XmlSerializationReader reader);
abstract member Deserialize : System.Xml.Serialization.XmlSerializationReader -> obj
override this.Deserialize : System.Xml.Serialization.XmlSerializationReader -> obj
Protected Overridable Function Deserialize (reader As XmlSerializationReader) As Object

參數

reader
XmlSerializationReader XmlSerializationReader XmlSerializationReader XmlSerializationReader

XmlSerializationReader,包含要還原序列化的 XML 文件。The XmlSerializationReader that contains the XML document to deserialize.

傳回

已還原序列化的物件。The deserialized object.

例外狀況

當方法在子代類別中未覆寫時,會嘗試存取該方法。Any attempt is made to access the method when the method is not overridden in a descendant class.

Deserialize(XmlReader) Deserialize(XmlReader) Deserialize(XmlReader)

還原序列化指定 XmlReader 所包含的 XML 文件。Deserializes the XML document contained by the specified XmlReader.

public:
 System::Object ^ Deserialize(System::Xml::XmlReader ^ xmlReader);
public object Deserialize (System.Xml.XmlReader xmlReader);
member this.Deserialize : System.Xml.XmlReader -> obj

參數

xmlReader
XmlReader XmlReader XmlReader XmlReader

XmlReader,包含要還原序列化的 XML 文件。The XmlReader that contains the XML document to deserialize.

傳回

要進行還原序列化的 ObjectThe Object being deserialized.

例外狀況

在還原序列化期間發生錯誤。An error occurred during deserialization. 可以使用 InnerException 屬性取得原始例外狀況。The original exception is available using the InnerException property.

範例

下列範例會還原序列化的物件使用XmlReaderThe following example deserializes an object using an XmlReader.

#using <System.Xml.dll>
#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Xml;
using namespace System::Xml::Serialization;

// This is the class that will be deserialized.
public ref class OrderedItem
{
public:
    String^ ItemName;
    String^ Description;
    Decimal UnitPrice;
    int Quantity;
    Decimal LineTotal;

    // A custom method used to calculate price per item.
    void Calculate()
    {
        LineTotal = UnitPrice * Quantity;
    }
};

void DeserializeObject( String^ filename )
{
    Console::WriteLine( "Reading with XmlReader" );

    // Create an instance of the XmlSerializer specifying type and namespace.
    XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );

    // A FileStream is needed to read the XML document.
    FileStream^ fs = gcnew FileStream( filename,FileMode::Open );
    XmlReader^ reader = gcnew XmlTextReader( fs );

    // Declare an object variable of the type to be deserialized.
    OrderedItem^ i;

    // Use the Deserialize method to restore the object's state.
    i = dynamic_cast<OrderedItem^>(serializer->Deserialize( reader ));

    // Write out the properties of the object.
    Console::Write( "{0}\t{1}\t{2}\t{3}\t{4}", i->ItemName, i->Description, i->UnitPrice, i->Quantity, i->LineTotal );
}

int main()
{
    // Read a purchase order.
    DeserializeObject( "simple.xml" );
}
using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;

// This is the class that will be deserialized.
public class OrderedItem
{
    public string ItemName;
    public string Description;
    public decimal UnitPrice;
    public int Quantity;
    public decimal LineTotal;

    // A custom method used to calculate price per item.
    public void Calculate()
    {
        LineTotal = UnitPrice * Quantity;
    }
}
public class Test
{
    public static void Main(string[] args)
    {
        Test t = new Test();
        // Read a purchase order.
        t.DeserializeObject("simple.xml");
    }

    private void DeserializeObject(string filename)
    {
        Console.WriteLine("Reading with XmlReader");

        // Create an instance of the XmlSerializer specifying type and namespace.
        XmlSerializer serializer = new
        XmlSerializer(typeof(OrderedItem));

        // A FileStream is needed to read the XML document.
        FileStream fs = new FileStream(filename, FileMode.Open);
        XmlReader reader = XmlReader.Create(fs);

        // Declare an object variable of the type to be deserialized.
        OrderedItem i;

        // Use the Deserialize method to restore the object's state.
        i = (OrderedItem)serializer.Deserialize(reader);
        fs.Close();

        // Write out the properties of the object.
        Console.Write(
        i.ItemName + "\t" +
        i.Description + "\t" +
        i.UnitPrice + "\t" +
        i.Quantity + "\t" +
        i.LineTotal);
    }
}
Imports System
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Serialization
Imports Microsoft.VisualBasic


' This is the class that will be deserialized.
Public Class OrderedItem
    Public ItemName As String
    Public Description As String
    Public UnitPrice As Decimal
    Public Quantity As Integer
    Public LineTotal As Decimal
        
    ' A custom method used to calculate price per item.
    Public Sub Calculate()
        LineTotal = UnitPrice * Quantity
    End Sub
End Class

Public Class Test
    
    Public Shared Sub Main()
        Dim t As New Test()
        ' Read a purchase order.
        t.DeserializeObject("simple.xml")
    End Sub
      
    Private Sub DeserializeObject(ByVal filename As String)
        Console.WriteLine("Reading with XmlReader")
        
        ' Create an instance of the XmlSerializer specifying type and namespace.
        Dim serializer As New XmlSerializer(GetType(OrderedItem))
        
        ' A FileStream is needed to read the XML document.
        Dim fs As New FileStream(filename, FileMode.Open)
        Dim reader As XmlReader = XmlReader.Create(fs)
        
        ' Declare an object variable of the type to be deserialized.
        Dim i As OrderedItem
        
        ' Use the Deserialize method to restore the object's state.
        i = CType(serializer.Deserialize(reader), OrderedItem)
        fs.Close()

        ' Write out the properties of the object.
        Console.Write(i.ItemName & ControlChars.Tab & _
                      i.Description & ControlChars.Tab & _
                      i.UnitPrice & ControlChars.Tab & _
                      i.Quantity & ControlChars.Tab & _
                      i.LineTotal)
    End Sub
End Class

<?xml version="1.0"?>
 <OrderedItem xmlns:inventory="http://www.cpandl.com" xmlns:money="http://www.cohowinery.com">
   <inventory:ItemName>Widget</inventory:ItemName>
   <inventory:Description>Regular Widget</inventory:Description>
   <money:UnitPrice>2.3</money:UnitPrice>
   <inventory:Quantity>10</inventory:Quantity>
   <money:LineTotal>23</money:LineTotal>
 </OrderedItem>

備註

還原序列化是讀取 XML 文件的執行個體,並建構物件,強型別為 XML 結構描述 (XSD) 文件的程序。Deserialization is the process of reading an instance of an XML document and constructing an object that is strongly typed to the XML Schema (XSD) of the document.

之前還原序列化,XmlSerializer必須使用正在還原序列化的物件型別來建構。Before deserializing, an XmlSerializer must be constructed using the type of the object that is being deserialized.

XmlReader會自動偵測並使用 XML 文件所指定的編碼方式。The XmlReader automatically detects and uses the encoding specified by the XML document.

注意

XmlSerializer無法還原序列化下列: 陣列ArrayList和陣列List<T>The XmlSerializer cannot deserialize the following: arrays of ArrayList and arrays of List<T>.

另請參閱

Deserialize(XmlReader, String) Deserialize(XmlReader, String) Deserialize(XmlReader, String)

還原序列化指定 XmlReader 和編碼樣式所包含的 XML 文件。Deserializes the XML document contained by the specified XmlReader and encoding style.

public:
 System::Object ^ Deserialize(System::Xml::XmlReader ^ xmlReader, System::String ^ encodingStyle);
public object Deserialize (System.Xml.XmlReader xmlReader, string encodingStyle);
member this.Deserialize : System.Xml.XmlReader * string -> obj

參數

xmlReader
XmlReader XmlReader XmlReader XmlReader

XmlReader,包含要還原序列化的 XML 文件。The XmlReader that contains the XML document to deserialize.

encodingStyle
String String String String

序列化 XML 的編碼樣式。The encoding style of the serialized XML.

傳回

已還原序列化的物件。The deserialized object.

例外狀況

在還原序列化期間發生錯誤。An error occurred during deserialization. 可以使用 InnerException 屬性取得原始例外狀況。The original exception is available using the InnerException property.

備註

還原序列化是讀取 XML 文件的執行個體,並建構物件,強型別為 XML 結構描述 (XSD) 文件的程序。Deserialization is the process of reading an instance of an XML document and constructing an object that is strongly typed to the XML Schema (XSD) of the document.

之前還原序列化,XmlSerializer必須使用正在還原序列化的物件型別來建構。Before deserializing, an XmlSerializer must be constructed using the type of the object that is being deserialized.

設定encodingStyle參數,以 「http://schemas.xmlsoap.org/soap/encoding/ 「 的 SOAP 1.1 版支援的編碼。否則,請將它設定為"http://www.w3.org/2001/12/soap-encoding"for SOAP 1.2 版的編碼方式。Set the encodingStyle parameter to "http://schemas.xmlsoap.org/soap/encoding/ " for SOAP version 1.1 encoding; otherwise, set it to "http://www.w3.org/2001/12/soap-encoding" for SOAP version 1.2 encoding.

附註XmlSerializer無法還原序列化下列: 陣列ArrayList和陣列List<T>Note The XmlSerializer cannot deserialize the following: arrays of ArrayList and arrays of List<T>.

另請參閱

Deserialize(XmlReader, XmlDeserializationEvents) Deserialize(XmlReader, XmlDeserializationEvents) Deserialize(XmlReader, XmlDeserializationEvents)

還原序列化指定 XmlReader 包含的 XML 文件,並允許覆寫還原序列化期間發生的事件。Deserializes an XML document contained by the specified XmlReader and allows the overriding of events that occur during deserialization.

public:
 System::Object ^ Deserialize(System::Xml::XmlReader ^ xmlReader, System::Xml::Serialization::XmlDeserializationEvents events);
public object Deserialize (System.Xml.XmlReader xmlReader, System.Xml.Serialization.XmlDeserializationEvents events);
member this.Deserialize : System.Xml.XmlReader * System.Xml.Serialization.XmlDeserializationEvents -> obj

參數

xmlReader
XmlReader XmlReader XmlReader XmlReader

XmlReader,包含要還原序列化的文件。The XmlReader that contains the document to deserialize.

傳回

要進行還原序列化的 ObjectThe Object being deserialized.

備註

正在還原序列化的物件。The object being deserialized.

Deserialize(XmlReader, String, XmlDeserializationEvents) Deserialize(XmlReader, String, XmlDeserializationEvents) Deserialize(XmlReader, String, XmlDeserializationEvents)

使用指定 XmlReader 包含的資料,還原序列化物件。Deserializes the object using the data contained by the specified XmlReader.

public:
 System::Object ^ Deserialize(System::Xml::XmlReader ^ xmlReader, System::String ^ encodingStyle, System::Xml::Serialization::XmlDeserializationEvents events);
public object Deserialize (System.Xml.XmlReader xmlReader, string encodingStyle, System.Xml.Serialization.XmlDeserializationEvents events);
member this.Deserialize : System.Xml.XmlReader * string * System.Xml.Serialization.XmlDeserializationEvents -> obj

參數

xmlReader
XmlReader XmlReader XmlReader XmlReader

XmlReader 類別的執行個體,用於讀取文件。An instance of the XmlReader class used to read the document.

encodingStyle
String String String String

使用的編碼方式。The encoding used.

傳回

正在還原序列化的物件。The object being deserialized.

備註

這個方法是未知的標頭的 Web 服務的案例只序列化所需的項目。This method is required for deserialization of unknown headers for Web Service scenarios only. 這個方法可讓您避免 Web 服務方法中的事件同步處理。This method allows you to avoid event synchronization in Web Service methods.

適用於