Eventos
Crie aplicativos e agentes de IA
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Usando o XmlSerializer, você pode gerar mais de um fluxo de XML com o mesmo conjunto de classes. Você deve querer fazer isso porque dois diferentes serviços Web XML exigem as mesmas informações básicas, com apenas poucas diferenças. Por exemplo, imagine dois serviços Web XML que processam pedidos para livros e, portanto, exigem números ISBN. Um serviço usa a marca <ISBN>, enquanto o segundo usa a marca <BookID>. Você tem uma classe nomeada Book
que contém um campo nomeado ISBN
. Quando uma instância da classe Book
é serializada, ela, por padrão, usará o nome de membro (ISBN) como o nome de elemento da marca. Para o primeiro serviço Web XML, esse é o esperado. Mas, para enviar o fluxo XML para o segundo serviço Web XML, você deverá sobrescrever a serialização para que o nome do elemento da marca seja BookID
.
Criar uma instância da classe XmlElementAttribute.
Defina o ElementName do XmlElementAttribute como "BookID".
Criar uma instância da classe XmlAttributes.
Adicione o objeto XmlElementAttribute
à coleção acessada por meio da propriedade XmlElements de XmlAttributes.
Criar uma instância da classe XmlAttributeOverrides.
Adicione o XmlAttributes
ao XmlAttributeOverrides, passando o tipo do objeto para sobrescrever e o nome do membro que está sendo sobrescrito.
Crie uma instância da classe XmlSerializer
com XmlAttributeOverrides
.
Crie uma instância da classe Book
e serialize-a ou desserialize-a.
Public Function SerializeOverride()
' Creates an XmlElementAttribute with the alternate name.
Dim myElementAttribute As XmlElementAttribute = _
New XmlElementAttribute()
myElementAttribute.ElementName = "BookID"
Dim myAttributes As XmlAttributes = New XmlAttributes()
myAttributes.XmlElements.Add(myElementAttribute)
Dim myOverrides As XmlAttributeOverrides = New XmlAttributeOverrides()
myOverrides.Add(typeof(Book), "ISBN", myAttributes)
Dim mySerializer As XmlSerializer = _
New XmlSerializer(GetType(Book), myOverrides)
Dim b As Book = New Book()
b.ISBN = "123456789"
' Creates a StreamWriter to write the XML stream to.
Dim writer As StreamWriter = New StreamWriter("Book.xml")
mySerializer.Serialize(writer, b);
End Class
public void SerializeOverride()
{
// Creates an XmlElementAttribute with the alternate name.
XmlElementAttribute myElementAttribute = new XmlElementAttribute();
myElementAttribute.ElementName = "BookID";
XmlAttributes myAttributes = new XmlAttributes();
myAttributes.XmlElements.Add(myElementAttribute);
XmlAttributeOverrides myOverrides = new XmlAttributeOverrides();
myOverrides.Add(typeof(Book), "ISBN", myAttributes);
XmlSerializer mySerializer =
new XmlSerializer(typeof(Book), myOverrides);
Book b = new Book();
b.ISBN = "123456789";
// Creates a StreamWriter to write the XML stream to.
StreamWriter writer = new StreamWriter("Book.xml");
mySerializer.Serialize(writer, b);
}
O fluxo XML pode ter a seguinte aparência.
<Book>
<BookID>123456789</BookID>
</Book>
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários:
Eventos
Crie aplicativos e agentes de IA
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraDocumentação
Atributos que controlam a serialização XML - .NET
Este artigo contém atributos que você pode aplicar a classes e a membros de classe para controlar como o XmlSerializer serializa ou desserializa uma instância de uma classe.
Elemento <xmlSerializer> - .NET
O elemento especifica se uma verificação adicional de progresso do XmlSerializer é feita.
Controlando a serialização XML usando atributos - .NET
Os atributos podem ser usados para controlar a serialização XML de um objeto ou criar um fluxo XML alternativo do mesmo conjunto de classes.
Como desserializar um objeto usando XmlSerializer - .NET
Saiba como desserializar um objeto. O formato de transporte determina se um fluxo ou objeto de arquivo deve ser criado.