Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Este artigo demonstra como usar a classe System.XmlSerialization.XmlSerializer para serializar e desserializar um objeto para XML (Extensible Markup Language).
Serialização é o processo pelo qual você armazenar o estado de um objeto em um fluxo de dados. Serialização permite que você persistir o estado de um objeto para que você possa recuperar o estado posterior. Serialização também permite que você clonar um objeto existente para criar um novo objeto. O namespace System.XML.Serialization contém classes que você pode usar para serializar objetos em XML.
Criar o aplicativo de console no Visual Basic .NET
Nesta seção, você cria um aplicativo de console que:
Desserializa um objeto para XML.
Salva a serialização de XML em um arquivo de texto.
Lê o XML no arquivo de texto para criar um novo objeto (desserialização).
Siga estas etapas para criar um novo aplicativo console no Visual Basic. NET:
Inicie o Visual Studio NET..
No menu arquivo , aponte para novo e, em seguida, clique em Project .
Na caixa de diálogo New Project , clique em Projetos do Visual Basic em Tipos de projeto e, em seguida, clique em Aplicativo de console em modelos .
Siga estas etapas para adicionar uma nova classe para o projeto:
No menu Project , clique em Add Class .
Na caixa de diálogo Add New Item , digite clsProduct.vb na caixa de texto nome e em seguida, clique em Abrir .
Substitua o código na janela de código clsProduct.vb com o código a seguir:
Public Class clsProduct
Private mstrName As String
Private mstrDescription As String
Private mintQty As Integer
Public Property Name() As String
Get
Name = mstrName
End Get
Set(ByVal Value As String)
mstrName = Value
End Set
End Property
Public Property Description() As String
Get
Description = mstrDescription
End Get
Set(ByVal Value As String)
mstrDescription = Value
End Set
End Property
Public Property Qty() As Integer
Get
Qty = mintQty
End Get
Set(ByVal Value As Integer)
mintQty = Value
End Set
End Property
End Class
este código cria uma classe Product com três propriedades: nome , Descrição e Qtd (quantidade).
Alterne para a janela de código para Module1.vb e, em seguida, adicione o código a seguir na parte superior da janela de código:
No procedimento Sub Main , adicione o código a seguir para criar e preencher uma instância da classe clsProduct :
'Set up product object.
Dim p As New clsProduct()
p.Name = "Widget"
p.Description = "Faster, better, cheaper"
p.Qty = 5
Use o objeto XmlSerializer para serializar o objeto para XML e salvar o estado do objeto para um arquivo de texto. Para fazer isso, adicione o seguinte código imediatamente antes da instrução End Sub no procedimento Sub Main :
'Serialize object to a text file.
Dim objStreamWriter As New StreamWriter("C:\Product.xml")
Dim x As New XmlSerializer(p.GetType)
x.Serialize(objStreamWriter, p)
objStreamWriter.Close()
No menu Debug , clique em Iniciar para executar o aplicativo.
Abra o arquivo Product.xml no bloco de notas ou no Microsoft Internet Explorer. O conteúdo desse arquivo deve ser exibidas da seguinte maneira:
O namespace Xml.Serialization lhe permite personalizar a saída que gera a classe XmlSerializer . Por exemplo, na classe clsProduct , o campo de quantidade é abreviado como Qtd. Você pode usar o atributo de XmlElementAttribute para alterar o campo para quantidade ao serializar a classe.
Alterne para a janela de código para clsProduct.vb e, em seguida, adicione o código a seguir na parte superior da janela de código:
Imports System.Xml.Serialization
Localize o procedimento de propriedade de Qtd e, em seguida, insira o código a seguir imediatamente antes da instrução Public propriedade Qty() As Integer :
<XmlElementAttribute(ElementName:="Quantity")> _
No menu Debug , clique em Iniciar para executar o aplicativo.
Abra o arquivo Product.xml no bloco de notas ou no Internet Explorer. O conteúdo desse arquivo deve aparece da seguinte maneira:
Observe que o elemento Qtd alterado para quantidade .
Alterne para a janela de código para Module1.vb e, em seguida, adicione o seguinte código ao procedimento Sub Main imediatamente antes da instrução End Sub :
'Deserialize text file to a new object.
Dim objStreamReader As New StreamReader("C:\Product.xml")
Dim p2 As New clsProduct()
p2 = x.Deserialize(objStreamReader)
objStreamReader.Close()
'Display property values of the new product object.
Console.WriteLine(p2.Name)
Console.WriteLine(p2.Description)
Console.WriteLine(CStr(p2.Qty))
Console.ReadLine()
este código desserializa o arquivo de texto Product.xml para criar um novo objeto clsProduct chamado p2. Além disso, esse código exibe os valores de propriedade de p2 na janela do console.
'Module1.vb
Imports System.Xml.Serialization
Imports System.IO
Module Module1
Sub Main()
'Set up product object.
Dim p As New clsProduct()
p.Name = "Widget"
p.Description = "Faster, better, cheaper"
p.Qty = 5
'Serialize object to a text file.
Dim objStreamWriter As New StreamWriter("C:\Product.xml")
Dim x As New XmlSerializer(p.GetType)
x.Serialize(objStreamWriter, p)
objStreamWriter.Close()
'Deserialize text file to a new object.
Dim objStreamReader As New StreamReader("C:\Product.xml")
Dim p2 As New clsProduct()
p2 = x.Deserialize(objStreamReader)
objStreamReader.Close()
'Display property values of the new product object.
Console.WriteLine(p2.Name)
Console.WriteLine(p2.Description)
Console.WriteLine(CStr(p2.Qty))
Console.ReadLine()
End Sub
End Module
'clsProduct.vb
Imports System.Xml.Serialization
Public Class clsProduct
Private mstrName As String
Private mstrDescription As String
Private mintQty As Integer
Public Property Name() As String
Get
Name = mstrName
End Get
Set(ByVal Value As String)
mstrName = Value
End Set
End Property
Public Property Description() As String
Get
Description = mstrDescription
End Get
Set(ByVal Value As String)
mstrDescription = Value
End Set
End Property
<XmlElementAttribute(ElementName:="Quantity")> _
Public Property Qty() As Integer
Get
Qty = mintQty
End Get
Set(ByVal Value As Integer)
mintQty = Value
End Set
End Property
End Class
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 316730
(http://support.microsoft.com/kb/316730/en-us/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
Diga-nos o porque e o que podemos fazer para melhorar esta informação
Obrigado! Seus comentários são usados para nos ajudar a aperfeiçoar o conteúdo de suporte. Para obter mais opções de ajuda, visite a Home Page de Ajuda e Suporte.