XmlSerializer.Serialize Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Serializa um objeto em um documento XML.
Sobrecargas
Serialize(XmlWriter, Object) |
Serializa o Object especificado e grava o documento XML em um arquivo usando o XmlWriter especificado. |
Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String) |
Serializa o Object especificado e grava o documento XML em um arquivo usando o XmlWriter, namespaces XML e a codificação especificados. |
Serialize(XmlWriter, Object, XmlSerializerNamespaces, String) |
Serializa o objeto especificado, grava o documento XML em um arquivo usando o XmlWriter especificado e referencia os namespaces e o estilo de codificação especificados. |
Serialize(XmlWriter, Object, XmlSerializerNamespaces) |
Serializa o Object especificado, grava o documento XML em um arquivo usando o XmlWriter especificado e referencia os namespaces especificados. |
Serialize(TextWriter, Object, XmlSerializerNamespaces) |
Serializa o Object especificado, grava o documento XML em um arquivo usando o TextWriter especificado e referencia os namespaces especificados. |
Serialize(Object, XmlSerializationWriter) |
Serializa o Object especificado e grava o documento XML em um arquivo usando o XmlSerializationWriter especificado. |
Serialize(TextWriter, Object) |
Serializa o Object especificado e grava o documento XML em um arquivo usando o TextWriter especificado. |
Serialize(Stream, Object) |
Serializa o Object especificado e grava o documento XML em um arquivo usando o Stream especificado. |
Serialize(Stream, Object, XmlSerializerNamespaces) |
Serializa o Object especificado e grava o documento XML em um arquivo usando o Stream fornecido que faz referência aos namespaces indicados. |
Serialize(XmlWriter, Object)
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
public:
void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o);
public void Serialize (System.Xml.XmlWriter xmlWriter, object o);
public void Serialize (System.Xml.XmlWriter xmlWriter, object? o);
member this.Serialize : System.Xml.XmlWriter * obj -> unit
Public Sub Serialize (xmlWriter As XmlWriter, o As Object)
Parâmetros
Exceções
Ocorreu um erro durante a serialização. A exceção original está disponível com o uso da propriedade InnerException.
Exemplos
O exemplo a seguir serializa um objeto usando um XmlWriter.
#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 serialized.
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 SerializeObject( String^ filename )
{
Console::WriteLine( "Writing With XmlTextWriter" );
XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
OrderedItem^ i = gcnew OrderedItem;
i->ItemName = "Widget";
i->Description = "Regular Widget";
i->Quantity = 10;
i->UnitPrice = (Decimal)2.30;
i->Calculate();
// Create an XmlTextWriter using a FileStream.
Stream^ fs = gcnew FileStream( filename,FileMode::Create );
XmlWriter^ writer = gcnew XmlTextWriter( fs,Encoding::Unicode );
// Serialize using the XmlTextWriter.
serializer->Serialize( writer, i );
writer->Close();
}
int main()
{
// Write a purchase order.
SerializeObject( "simple.xml" );
}
using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
// This is the class that will be serialized.
public class OrderedItem4
{
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 Test4
{
public static void Main()
{
Test4 t = new();
// Write a purchase order.
t.SerializeObject("simple.xml");
}
private void SerializeObject(string filename)
{
Console.WriteLine("Writing With XmlTextWriter");
XmlSerializer serializer = new(typeof(OrderedItem4));
OrderedItem4 i = new()
{
ItemName = "Widget",
Description = "Regular Widget",
Quantity = 10,
UnitPrice = (decimal)2.30
};
i.Calculate();
// Create an XmlTextWriter using a FileStream.
Stream fs = new FileStream(filename, FileMode.Create);
XmlTextWriter writer = new(fs, Encoding.Unicode);
// Serialize using the XmlTextWriter.
serializer.Serialize(writer, i);
writer.Close();
}
}
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Serialization
' This is the class that will be serialized.
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()
' Write a purchase order.
t.SerializeObject("simple.xml")
End Sub
Private Sub SerializeObject(ByVal filename As String)
Console.WriteLine("Writing With XmlTextWriter")
Dim serializer As New XmlSerializer(GetType(OrderedItem))
Dim i As New OrderedItem()
With i
.ItemName = "Widget"
.Description = "Regular Widget"
.Quantity = 10
.UnitPrice = CDec(2.3)
.Calculate()
End With
' Create an XmlTextWriter using a FileStream.
Dim fs As New FileStream(filename, FileMode.Create)
Dim writer As New XmlTextWriter(fs, Encoding.Unicode)
' Serialize using the XmlTextWriter.
serializer.Serialize(writer, i)
writer.Close()
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>
Comentários
O Serialize método converte os campos públicos e as propriedades de leitura/gravação de um objeto em XML. Ele não converte métodos, indexadores, campos privados ou propriedades somente leitura.
xmlWriter
No parâmetro , especifique um objeto que deriva da classe abstrataXmlWriter. O XmlTextWriter deriva do XmlWriter.
Observação
O XmlSerializer não pode serializar o seguinte: matrizes de ArrayList e matrizes de List<T>.
Confira também
- XmlAttributes
- Deserialize(Stream)
- Apresentando a serialização XML
- Como especificar um nome de elemento alternativo para um fluxo XML
- Controlando a serialização XML usando atributos
- Exemplos de Serialização XML
- Ferramenta de Definição de Esquema XML (Xsd.exe)
Aplica-se a
Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String)
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
public:
void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces, System::String ^ encodingStyle, System::String ^ id);
public void Serialize (System.Xml.XmlWriter xmlWriter, object? o, System.Xml.Serialization.XmlSerializerNamespaces? namespaces, string? encodingStyle, string? id);
public void Serialize (System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces, string encodingStyle, string id);
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces * string * string -> unit
Public Sub Serialize (xmlWriter As XmlWriter, o As Object, namespaces As XmlSerializerNamespaces, encodingStyle As String, id As String)
Parâmetros
- o
- Object
O objeto a ser serializado.
- namespaces
- XmlSerializerNamespaces
Uma instância do XmlSerializerNamespaces
que contém namespaces e prefixos a serem usados.
- encodingStyle
- String
A codificação usada no documento.
- id
- String
Para mensagens codificadas em SOAP, a base usada para gerar atributos de ID.
Comentários
O parâmetro id fornece a cadeia de caracteres base usada para criar IDs SOAP. Por padrão, eles são "id1", "id2" e assim por diante. Mas se o parâmetro for definido como "myBase", os valores gerados serão "myBaseid1", "myBaseid2" e assim por diante. Essa funcionalidade é usada para criar valores de ID exclusivos em toda a mensagem SOAP.
Aplica-se a
Serialize(XmlWriter, Object, XmlSerializerNamespaces, String)
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
Serializa o objeto especificado, grava o documento XML em um arquivo usando o XmlWriter especificado e referencia os namespaces e o estilo de codificação especificados.
public:
void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces, System::String ^ encodingStyle);
public void Serialize (System.Xml.XmlWriter xmlWriter, object? o, System.Xml.Serialization.XmlSerializerNamespaces? namespaces, string? encodingStyle);
public void Serialize (System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces, string encodingStyle);
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces * string -> unit
Public Sub Serialize (xmlWriter As XmlWriter, o As Object, namespaces As XmlSerializerNamespaces, encodingStyle As String)
Parâmetros
- o
- Object
O objeto a ser serializado.
- namespaces
- XmlSerializerNamespaces
O XmlSerializerNamespaces referenciado pelo objeto.
- encodingStyle
- String
O estilo de codificação do XML serializado.
Exceções
Ocorreu um erro durante a serialização. A exceção original está disponível com o uso da propriedade InnerException.
Comentários
Quando o Serialize método é invocado, os campos públicos e as propriedades de leitura/gravação de um objeto são convertidos em XML. Métodos, indexadores, campos privados e propriedades somente leitura não são serializados.
Use o xmlWriter
parâmetro para especificar um objeto derivado da classe abstrata XmlWriter , que foi projetada para gravar documentos XML. O XmlTextWriter deriva do XmlWriter.
Defina o encodingStyle
parâmetro como "http://schemas.xmlsoap.org/soap/encoding/" para codificação SOAP versão 1.1; caso contrário, defina-o como "http://www.w3.org/2001/12/soap-encoding" para codificação SOAP versão 1.2.
Observação
O XmlSerializer não pode serializar o seguinte: matrizes de ArrayList e matrizes de List<T>.
Confira também
- XmlAttributes
- Deserialize(Stream)
- Apresentando a serialização XML
- Como especificar um nome de elemento alternativo para um fluxo XML
- Controlando a serialização XML usando atributos
- Exemplos de Serialização XML
- Ferramenta de Definição de Esquema XML (Xsd.exe)
Aplica-se a
Serialize(XmlWriter, Object, XmlSerializerNamespaces)
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
public:
void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces);
public void Serialize (System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces);
public void Serialize (System.Xml.XmlWriter xmlWriter, object? o, System.Xml.Serialization.XmlSerializerNamespaces? namespaces);
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit
Public Sub Serialize (xmlWriter As XmlWriter, o As Object, namespaces As XmlSerializerNamespaces)
Parâmetros
- namespaces
- XmlSerializerNamespaces
O XmlSerializerNamespaces referenciado pelo objeto.
Exceções
Ocorreu um erro durante a serialização. A exceção original está disponível com o uso da propriedade InnerException.
Exemplos
O exemplo a seguir serializa um objeto com um XmlWriter. O exemplo também cria um XmlSerializerNamespaces e adiciona dois namespaces ao objeto . Várias instâncias da XmlElementAttribute classe são aplicadas aos membros da classe para especificar o namespace para cada elemento.
#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 serialized.
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 SerializeObject( String^ filename )
{
Console::WriteLine( "Writing With XmlTextWriter" );
XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
OrderedItem^ i = gcnew OrderedItem;
i->ItemName = "Widget";
i->Description = "Regular Widget";
i->Quantity = 10;
i->UnitPrice = (Decimal)2.30;
i->Calculate();
// Create an XmlSerializerNamespaces object.
XmlSerializerNamespaces^ ns = gcnew XmlSerializerNamespaces;
// Add two namespaces with prefixes.
ns->Add( "inventory", "http://www.cpandl.com" );
ns->Add( "money", "http://www.cohowinery.com" );
// Create an XmlTextWriter using a FileStream.
Stream^ fs = gcnew FileStream( filename,FileMode::Create );
XmlWriter^ writer = gcnew XmlTextWriter( fs,gcnew UTF8Encoding );
// Serialize using the XmlTextWriter.
serializer->Serialize( writer, i, ns );
writer->Close();
}
int main()
{
// Write a purchase order.
SerializeObject( "simple.xml" );
}
using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
// This is the class that will be serialized.
public class OrderedItem5
{
[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 Test5
{
public static void Main()
{
Test5 t = new();
// Write a purchase order.
t.SerializeObject("simple.xml");
}
private void SerializeObject(string filename)
{
Console.WriteLine("Writing With XmlTextWriter");
XmlSerializer serializer = new(typeof(OrderedItem5));
OrderedItem5 i = new()
{
ItemName = "Widget",
Description = "Regular Widget",
Quantity = 10,
UnitPrice = (decimal)2.30
};
i.Calculate();
// Create an XmlSerializerNamespaces object.
XmlSerializerNamespaces ns = new();
// Add two namespaces with prefixes.
ns.Add("inventory", "http://www.cpandl.com");
ns.Add("money", "http://www.cohowinery.com");
// Create an XmlTextWriter using a FileStream.
Stream fs = new FileStream(filename, FileMode.Create);
XmlTextWriter writer = new(fs, new UTF8Encoding());
// Serialize using the XmlTextWriter.
serializer.Serialize(writer, i, ns);
writer.Close();
}
}
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Serialization
' This is the class that will be serialized.
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()
' Write a purchase order.
t.SerializeObject("simple.xml")
End Sub
Private Sub SerializeObject(ByVal filename As String)
Console.WriteLine("Writing With XmlTextWriter")
Dim serializer As New XmlSerializer(GetType(OrderedItem))
Dim i As New OrderedItem()
With i
.ItemName = "Widget"
.Description = "Regular Widget"
.Quantity = 10
.UnitPrice = CDec(2.3)
.Calculate()
End With
' Create an XmlSerializerNamespaces object.
Dim ns As New XmlSerializerNamespaces()
' Add two namespaces with prefixes.
ns.Add("inventory", "http://www.cpandl.com")
ns.Add("money", "http://www.cohowinery.com")
' Create an XmlTextWriter using a FileStream.
Dim fs As New FileStream(filename, FileMode.Create)
Dim writer As New XmlTextWriter(fs, New UTF8Encoding())
' Serialize using the XmlTextWriter.
serializer.Serialize(writer, i, ns)
writer.Close()
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>
Comentários
Quando o Serialize método é invocado, os campos públicos e as propriedades de leitura/gravação de um objeto são convertidos em XML. Métodos, indexadores, campos privados e propriedades somente leitura não são serializados.
Use o xmlWriter
parâmetro para especificar um objeto derivado da classe abstrata XmlWriter , que foi projetada para gravar documentos XML. O XmlTextWriter deriva do XmlWriter.
Observação
O XmlSerializer não pode serializar o seguinte: matrizes de ArrayList e matrizes de List<T>.
Confira também
- XmlAttributes
- Deserialize(Stream)
- Apresentando a serialização XML
- Como especificar um nome de elemento alternativo para um fluxo XML
- Controlando a serialização XML usando atributos
- Exemplos de Serialização XML
- Ferramenta de Definição de Esquema XML (Xsd.exe)
Aplica-se a
Serialize(TextWriter, Object, XmlSerializerNamespaces)
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
Serializa o Object especificado, grava o documento XML em um arquivo usando o TextWriter especificado e referencia os namespaces especificados.
public:
void Serialize(System::IO::TextWriter ^ textWriter, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces);
public void Serialize (System.IO.TextWriter textWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces);
public void Serialize (System.IO.TextWriter textWriter, object? o, System.Xml.Serialization.XmlSerializerNamespaces? namespaces);
member this.Serialize : System.IO.TextWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit
Public Sub Serialize (textWriter As TextWriter, o As Object, namespaces As XmlSerializerNamespaces)
Parâmetros
- textWriter
- TextWriter
O TextWriter usado para gravar o documento XML.
- namespaces
- XmlSerializerNamespaces
O XmlSerializerNamespaces que contém namespaces para o documento XML gerado.
Exceções
Ocorreu um erro durante a serialização. A exceção original está disponível com o uso da propriedade InnerException.
Exemplos
O exemplo a seguir serializa um objeto com um TextWriter. O exemplo também cria um XmlSerializerNamespaces objeto e adiciona dois namespaces ao objeto . A classe que define o objeto serializado também é atribuída com XmlElementAttribute atributos para especificar o namespace para cada elemento.
#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 serialized.
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 SerializeObject( String^ filename )
{
Console::WriteLine( "Writing With TextWriter" );
// Create an XmlSerializer instance using the type.
XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
OrderedItem^ i = gcnew OrderedItem;
i->ItemName = "Widget";
i->Description = "Regular Widget";
i->Quantity = 10;
i->UnitPrice = (Decimal)2.30;
i->Calculate();
// Create an XmlSerializerNamespaces object.
XmlSerializerNamespaces^ ns = gcnew XmlSerializerNamespaces;
// Add two namespaces with prefixes.
ns->Add( "inventory", "http://www.cpandl.com" );
ns->Add( "money", "http://www.cohowinery.com" );
// Create a StreamWriter to write with.
TextWriter^ writer = gcnew StreamWriter( filename );
/* Serialize using the object using the TextWriter
and namespaces. */
serializer->Serialize( writer, i, ns );
writer->Close();
}
int main()
{
// Write a purchase order.
SerializeObject( "simple.xml" );
}
using System;
using System.IO;
using System.Xml.Serialization;
// This is the class that will be serialized.
public class OrderedItem1
{
[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 Test1
{
public static void Main(string[] args)
{
Test1 t = new();
// Write a purchase order.
t.SerializeObject("simple.xml");
}
private void SerializeObject(string filename)
{
Console.WriteLine("Writing With TextWriter");
// Create an XmlSerializer instance using the type.
XmlSerializer serializer = new(typeof(OrderedItem1));
OrderedItem1 i = new()
{
ItemName = "Widget",
Description = "Regular Widget",
Quantity = 10,
UnitPrice = (decimal)2.30
};
i.Calculate();
// Create an XmlSerializerNamespaces object.
XmlSerializerNamespaces ns = new();
// Add two namespaces with prefixes.
ns.Add("inventory", "http://www.cpandl.com");
ns.Add("money", "http://www.cohowinery.com");
// Create a StreamWriter to write with.
StreamWriter writer = new(filename);
/* Serialize using the object using the TextWriter
and namespaces. */
serializer.Serialize(writer, i, ns);
writer.Close();
}
}
Imports System.IO
Imports System.Xml.Serialization
' This is the class that will be serialized.
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()
' Write a purchase order.
t.SerializeObject("simple.xml")
End Sub
Private Sub SerializeObject(ByVal filename As String)
Console.WriteLine("Writing With TextWriter")
' Create an XmlSerializer instance using the type.
Dim serializer As New XmlSerializer(GetType(OrderedItem))
Dim i As New OrderedItem()
i.ItemName = "Widget"
i.Description = "Regular Widget"
i.Quantity = 10
i.UnitPrice = CDec(2.3)
i.Calculate()
' Create an XmlSerializerNamespaces object.
Dim ns As New XmlSerializerNamespaces()
' Add two namespaces with prefixes.
ns.Add("inventory", "http://www.cpandl.com")
ns.Add("money", "http://www.cohowinery.com")
' Create a StreamWriter to write with.
Dim writer As New StreamWriter(filename)
' Serialize using the object using the TextWriter
' and namespaces.
serializer.Serialize(writer, i, ns)
writer.Close()
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>
Comentários
Quando o Serialize método é invocado, os campos públicos e as propriedades de leitura/gravação de um objeto são convertidos em XML. Métodos, indexadores, campos privados e propriedades somente leitura não são serializados.
Use o textWriter
parâmetro para especificar um objeto derivado da classe abstrata TextWriter . As classes derivadas da TextWriter classe incluem:
Observação
O XmlSerializer não pode serializar o seguinte: matrizes de ArrayList matrizes e de List<T>.
Confira também
- XmlAttributes
- Apresentando a serialização XML
- Como especificar um nome de elemento alternativo para um fluxo XML
- Controlando a serialização XML usando atributos
- Exemplos de Serialização XML
- Ferramenta de Definição de Esquema XML (Xsd.exe)
Aplica-se a
Serialize(Object, XmlSerializationWriter)
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
Serializa o Object especificado e grava o documento XML em um arquivo usando o XmlSerializationWriter especificado.
protected:
virtual void Serialize(System::Object ^ o, System::Xml::Serialization::XmlSerializationWriter ^ writer);
protected virtual void Serialize (object? o, System.Xml.Serialization.XmlSerializationWriter writer);
protected virtual void Serialize (object o, System.Xml.Serialization.XmlSerializationWriter writer);
abstract member Serialize : obj * System.Xml.Serialization.XmlSerializationWriter -> unit
override this.Serialize : obj * System.Xml.Serialization.XmlSerializationWriter -> unit
Protected Overridable Sub Serialize (o As Object, writer As XmlSerializationWriter)
Parâmetros
- writer
- XmlSerializationWriter
O XmlSerializationWriter usado para gravar o documento XML.
Exceções
Qualquer tentativa de acessar o método será feita quando ele não for substituído em uma classe descendente.
Aplica-se a
Serialize(TextWriter, Object)
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
Serializa o Object especificado e grava o documento XML em um arquivo usando o TextWriter especificado.
public:
void Serialize(System::IO::TextWriter ^ textWriter, System::Object ^ o);
public void Serialize (System.IO.TextWriter textWriter, object o);
public void Serialize (System.IO.TextWriter textWriter, object? o);
member this.Serialize : System.IO.TextWriter * obj -> unit
Public Sub Serialize (textWriter As TextWriter, o As Object)
Parâmetros
- textWriter
- TextWriter
O TextWriter usado para gravar o documento XML.
Exemplos
O exemplo a seguir serializa um objeto usando um TextWriter.
#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 serialized.
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 SerializeObject( String^ filename )
{
Console::WriteLine( "Writing With TextWriter" );
XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
OrderedItem^ i = gcnew OrderedItem;
i->ItemName = "Widget";
i->Description = "Regular Widget";
i->Quantity = 10;
i->UnitPrice = (Decimal)2.30;
i->Calculate();
/* Create a StreamWriter to write with. First create a FileStream
object, and create the StreamWriter specifying an Encoding to use. */
FileStream^ fs = gcnew FileStream( filename,FileMode::Create );
TextWriter^ writer = gcnew StreamWriter( fs,gcnew UTF8Encoding );
// Serialize using the XmlTextWriter.
serializer->Serialize( writer, i );
writer->Close();
}
int main()
{
// Write a purchase order.
SerializeObject( "simple.xml" );
}
using System;
using System.IO;
using System.Text;
using System.Xml.Serialization;
// This is the class that will be serialized.
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();
// Write a purchase order.
t.SerializeObject("simple.xml");
}
private void SerializeObject(string filename)
{
Console.WriteLine("Writing With TextWriter");
XmlSerializer serializer = new(typeof(OrderedItem));
OrderedItem i = new()
{
ItemName = "Widget",
Description = "Regular Widget",
Quantity = 10,
UnitPrice = (decimal)2.30
};
i.Calculate();
/* Create a StreamWriter to write with. First create a FileStream
object, and create the StreamWriter specifying an Encoding to use. */
FileStream fs = new(filename, FileMode.Create);
StreamWriter writer = new(fs, new UTF8Encoding());
// Serialize using the XmlTextWriter.
serializer.Serialize(writer, i);
writer.Close();
}
}
Imports System.IO
Imports System.Text
Imports System.Xml.Serialization
' This is the class that will be serialized.
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()
' Write a purchase order.
t.SerializeObject("simple.xml")
End Sub
Private Sub SerializeObject(ByVal filename As String)
Console.WriteLine("Writing With TextWriter")
Dim serializer As New XmlSerializer(GetType(OrderedItem))
Dim i As New OrderedItem()
With i
.ItemName = "Widget"
.Description = "Regular Widget"
.Quantity = 10
.UnitPrice = CDec(2.3)
.Calculate()
End With
' Create a StreamWriter to write with. First create a FileStream
' object, and create the StreamWriter specifying an Encoding to use.
Dim fs As New FileStream(filename, FileMode.Create)
Dim writer As New StreamWriter(fs, New UTF8Encoding())
' Serialize using the XmlTextWriter.
serializer.Serialize(writer, i)
writer.Close()
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>
Comentários
O Serialize método converte os campos públicos e as propriedades de leitura/gravação de um objeto em XML. Ele não converte métodos, indexadores, campos privados ou propriedades somente leitura.
textWriter
No parâmetro , especifique um objeto que deriva da classe abstrata TextWriter . As classes que derivam de TextWriter incluem:
Observação
O XmlSerializer não pode serializar o seguinte: matrizes de ArrayList matrizes e de List<T>.
Confira também
- XmlAttributes
- Apresentando a serialização XML
- Como especificar um nome de elemento alternativo para um fluxo XML
- Controlando a serialização XML usando atributos
- Exemplos de Serialização XML
- Ferramenta de Definição de Esquema XML (Xsd.exe)
Aplica-se a
Serialize(Stream, Object)
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
public:
void Serialize(System::IO::Stream ^ stream, System::Object ^ o);
public void Serialize (System.IO.Stream stream, object o);
public void Serialize (System.IO.Stream stream, object? o);
member this.Serialize : System.IO.Stream * obj -> unit
Public Sub Serialize (stream As Stream, o As Object)
Parâmetros
Exceções
Ocorreu um erro durante a serialização. A exceção original está disponível com o uso da propriedade InnerException.
Exemplos
O exemplo a seguir serializa um objeto usando um Stream objeto .
#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 serialized.
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 SerializeObject( String^ filename )
{
Console::WriteLine( "Writing With Stream" );
XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
OrderedItem^ i = gcnew OrderedItem;
i->ItemName = "Widget";
i->Description = "Regular Widget";
i->Quantity = 10;
i->UnitPrice = (Decimal)2.30;
i->Calculate();
// Create a FileStream to write with.
Stream^ writer = gcnew FileStream( filename,FileMode::Create );
// Serialize the object, and close the TextWriter
serializer->Serialize( writer, i );
writer->Close();
}
int main()
{
// Write a purchase order.
SerializeObject( "simple.xml" );
}
using System;
using System.IO;
using System.Xml.Serialization;
// This is the class that will be serialized.
public class OrderedItem2
{
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 Test2
{
public static void Main(string[] args)
{
Test2 t = new();
// Write a purchase order.
t.SerializeObject("simple.xml");
}
private void SerializeObject(string filename)
{
Console.WriteLine("Writing With Stream");
XmlSerializer serializer = new(typeof(OrderedItem2));
OrderedItem2 i = new()
{
ItemName = "Widget",
Description = "Regular Widget",
Quantity = 10,
UnitPrice = (decimal)2.30
};
i.Calculate();
// Create a FileStream to write with.
FileStream writer = new(filename, FileMode.Create);
// Serialize the object, and close the TextWriter
serializer.Serialize(writer, i);
writer.Close();
}
}
Imports System.IO
Imports System.Xml.Serialization
' This is the class that will be serialized.
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()
' Write a purchase order.
t.SerializeObject("simple.xml")
End Sub
Private Sub SerializeObject(ByVal filename As String)
Console.WriteLine("Writing With Stream")
Dim serializer As New XmlSerializer(GetType(OrderedItem))
Dim i As New OrderedItem()
With i
.ItemName = "Widget"
.Description = "Regular Widget"
.Quantity = 10
.UnitPrice = CDec(2.3)
.Calculate()
End With
' Create a FileStream to write with.
Dim writer As New FileStream(filename, FileMode.Create)
' Serialize the object, and close the TextWriter
serializer.Serialize(writer, i)
writer.Close()
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>
Comentários
O Serialize método converte os campos públicos e as propriedades de leitura/gravação de um objeto em XML. Ele não converte métodos, indexadores, campos privados ou propriedades somente leitura.
stream
No parâmetro , especifique um objeto que deriva da classe abstrata Stream . As classes que derivam de Stream incluem:
Observação
O XmlSerializer não pode serializar o seguinte: matrizes de ArrayList matrizes e de List<T>.
Confira também
- XmlAttributes
- Deserialize(Stream)
- Apresentando a serialização XML
- Como especificar um nome de elemento alternativo para um fluxo XML
- Controlando a serialização XML usando atributos
- Exemplos de Serialização XML
- Ferramenta de Definição de Esquema XML (Xsd.exe)
Aplica-se a
Serialize(Stream, Object, XmlSerializerNamespaces)
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
- Origem:
- XmlSerializer.cs
public:
void Serialize(System::IO::Stream ^ stream, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces);
public void Serialize (System.IO.Stream stream, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces);
public void Serialize (System.IO.Stream stream, object? o, System.Xml.Serialization.XmlSerializerNamespaces? namespaces);
member this.Serialize : System.IO.Stream * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit
Public Sub Serialize (stream As Stream, o As Object, namespaces As XmlSerializerNamespaces)
Parâmetros
- namespaces
- XmlSerializerNamespaces
O XmlSerializerNamespaces referenciado pelo objeto.
Exceções
Ocorreu um erro durante a serialização. A exceção original está disponível com o uso da propriedade InnerException.
Exemplos
O exemplo a seguir serializa um objeto com um Stream objeto . O exemplo também cria um XmlSerializerNamespaces e adiciona dois namespaces ao objeto . A classe que define o objeto serializado também é atribuída com XmlElementAttribute atributos para especificar o namespace para cada elemento.
#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 serialized.
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 SerializeObject( String^ filename )
{
Console::WriteLine( "Writing With Stream" );
XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
OrderedItem^ i = gcnew OrderedItem;
i->ItemName = "Widget";
i->Description = "Regular Widget";
i->Quantity = 10;
i->UnitPrice = (Decimal)2.30;
i->Calculate();
// Create an XmlSerializerNamespaces object.
XmlSerializerNamespaces^ ns = gcnew XmlSerializerNamespaces;
// Add two prefix-namespace pairs.
ns->Add( "inventory", "http://www.cpandl.com" );
ns->Add( "money", "http://www.cohowinery.com" );
// Create a FileStream to write with.
Stream^ writer = gcnew FileStream( filename,FileMode::Create );
// Serialize the object, and close the TextWriter
serializer->Serialize( writer, i, ns );
writer->Close();
}
void DeserializeObject( String^ filename )
{
Console::WriteLine( "Reading with Stream" );
// Create an instance of the XmlSerializer.
XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
// Writing the file requires a Stream.
Stream^ reader = gcnew FileStream( filename,FileMode::Open );
// Declare an object variable of the type to be deserialized.
OrderedItem^ i;
/* Use the Deserialize method to restore the object's state
using data from the XML document. */
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()
{
// Write a purchase order.
SerializeObject( "simple.xml" );
DeserializeObject( "simple.xml" );
}
using System;
using System.IO;
using System.Xml.Serialization;
// This is the class that will be serialized.
public class OrderedItem3
{
[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 Test3
{
public static void Main()
{
Test3 t = new();
// Write a purchase order.
t.SerializeObject("simple.xml");
t.DeserializeObject("simple.xml");
}
private void SerializeObject(string filename)
{
Console.WriteLine("Writing With Stream");
XmlSerializer serializer =
new(typeof(OrderedItem3));
OrderedItem3 i = new()
{
ItemName = "Widget",
Description = "Regular Widget",
Quantity = 10,
UnitPrice = (decimal)2.30
};
i.Calculate();
// Create an XmlSerializerNamespaces object.
XmlSerializerNamespaces ns = new();
// Add two prefix-namespace pairs.
ns.Add("inventory", "http://www.cpandl.com");
ns.Add("money", "http://www.cohowinery.com");
// Create a FileStream to write with.
FileStream writer = new(filename, FileMode.Create);
// Serialize the object, and close the TextWriter
serializer.Serialize(writer, i, ns);
writer.Close();
}
private void DeserializeObject(string filename)
{
Console.WriteLine("Reading with Stream");
// Create an instance of the XmlSerializer.
XmlSerializer serializer = new(typeof(OrderedItem3));
// Writing the file requires a Stream.
Stream reader = new FileStream(filename, FileMode.Open);
// Declare an object variable of the type to be deserialized.
OrderedItem3 i;
/* Use the Deserialize method to restore the object's state
using data from the XML document. */
i = (OrderedItem3)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.IO
Imports System.Xml.Serialization
' This is the class that will be serialized.
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()
' Write a purchase order.
t.SerializeObject("simple.xml")
t.DeserializeObject("simple.xml")
End Sub
Private Sub SerializeObject(ByVal filename As String)
Console.WriteLine("Writing With Stream")
Dim serializer As New XmlSerializer(GetType(OrderedItem))
Dim i As New OrderedItem()
With i
.ItemName = "Widget"
.Description = "Regular Widget"
.Quantity = 10
.UnitPrice = CDec(2.3)
.Calculate()
End With
' Create an XmlSerializerNamespaces object.
Dim ns As New XmlSerializerNamespaces()
' Add two prefix-namespace pairs.
ns.Add("inventory", "http://www.cpandl.com")
ns.Add("money", "http://www.cohowinery.com")
' Create a FileStream to write with.
Dim writer As New FileStream(filename, FileMode.Create)
' Serialize the object, and close the TextWriter
serializer.Serialize(writer, i, ns)
writer.Close()
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))
' Writing the file requires a Stream.
Dim reader As New FileStream(filename, FileMode.Open)
' Declare an object variable of the type to be deserialized.
Dim i As OrderedItem
' Use the Deserialize method to restore the object's state
' using data from the XML document.
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
Comentários
Quando o Serialize método é invocado, os campos públicos e as propriedades de leitura/gravação de um objeto são convertidos em XML. Métodos, indexadores, campos privados e propriedades somente leitura não são serializados.
Use o stream
parâmetro para especificar um objeto que deriva da classe abstrata Stream , que foi projetada para gravar em fluxos. As classes derivadas da Stream classe incluem:
Observação
O XmlSerializer não pode serializar o seguinte: matrizes de ArrayList matrizes e de List<T>.
Confira também
- XmlAttributes
- Deserialize(Stream)
- Apresentando a serialização XML
- Como especificar um nome de elemento alternativo para um fluxo XML
- Controlando a serialização XML usando atributos
- Exemplos de Serialização XML
- Ferramenta de Definição de Esquema XML (Xsd.exe)