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 utilizar a classe System.XmlSerialization.XmlSerializer para serializar e para anular a serialização de um objecto para XML (Extensible Markup Language).
Serialização é o processo pelo qual armazenar o estado de um objecto numa sequência de dados. Serialização permite-lhe manter o estado de um objecto para que é possível obter o estado mais tarde. Serialização permite também a clonar um objecto existente para criar um novo objecto. O espaço de nomes System.Xml.Serialization contém classes que pode utilizar para serializar objectos em XML.
Guarda a serialização de XML num ficheiro de texto.
Lê o XML no ficheiro de texto para criar um novo objecto (anulação da serialização).
Siga estes passos para criar uma nova aplicação de consola no Visual Basic. NET:
Inicie o Visual Studio NET..
No menu ficheiro , aponte para Novo e, em seguida, clique em projecto .
Na caixa de diálogo Novo projecto , clique em Projectos do Visual Basic em Project Types e, em seguida, clique em Aplicação de consola em modelos .
Siga estes passos para adicionar uma nova classe ao projecto:
No menu projecto , clique em Adicionar classe .
Na caixa de diálogo Adicionar novo item , escreva 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 seguinte código:
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 de produtos com três propriedades: nome , Descrição e Qtd. (quantidade).
Mude para a janela de código para Module1.vb e, em seguida, adicione o código seguinte à parte superior da janela de código:
No procedimento Sub Main , adicione o seguinte código 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
Utilize o objecto de XmlSerializer serializar o objecto para XML e guardar o estado do objecto para um ficheiro de texto. Para efectuar este procedimento, adicione o seguinte código imediatamente antes a instrução ' End Sub 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 a aplicação.
Abra o ficheiro Product.xml no bloco de notas ou no Microsoft Internet Explorer. O conteúdo deste ficheiro deverá apresentado da seguinte forma:
O espaço de nomes Xml.Serialization permite-lhe personalizar o resultado que gera a classe de XmlSerializer . Por exemplo, classe clsProduct , o campo ' Quantidade ' é abreviado como Qtd. Pode utilizar o atributo XmlElementAttribute para alterar o campo a quantidade ao serializar a classe.
Mude para a janela código clsProduct.vb e, em seguida, adicione o código seguinte à parte superior da janela de código:
Imports System.Xml.Serialization
Localize o procedimento de propriedade para Qtd. e, em seguida, insira o seguinte código imediatamente antes a instrução Pública propriedades qty() As Integer :
<XmlElementAttribute(ElementName:="Quantity")> _
No menu Debug , clique em Iniciar para executar a aplicação.
Abra o ficheiro Product.xml no bloco de notas ou no Internet Explorer. O conteúdo deste ficheiro deve aparece da seguinte forma:
Repare que o elemento de Qtd. alterado a quantidade .
Mude para a janela de código para Module1.vb e, em seguida, adicione o seguinte código ao procedimento Sub Main imediatamente antes a 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 deserializes o ficheiro de texto Product.xml para criar um novo objecto clsProduct denominado p2. Além disso, este código apresenta os valores de propriedade de p2 na janela de consola.
'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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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
O que podemos fazer para melhor estas informações?
Para proteger a sua privacidade, não inclua as informações de contacto nos comentários.
Obrigado! Os seus comentários serão utilizados para nos ajudar a melhorar o conteúdo do suporte. Para obter mais opções de assistência, visite a Home Page da Ajuda e Suporte.