Using binary serialization

Description

70-483 C# Flashcards on Using binary serialization, created by Thiago Russo on 05/06/2017.
Thiago Russo
Flashcards by Thiago Russo, updated more than 1 year ago
Thiago Russo
Created by Thiago Russo over 7 years ago
2
0

Resource summary

Question Answer
Qual a diferença entre serialização de XML e binária? O XmlSerializer tem saída de texto legível. Vc pode abrir no bloco de notas para inspecionar e editá-lo. Mas a legibilidade humana do arquivo tb acrescenta ao seu tamanho. Usando um formato binário, vc terá um resultado menor. Vc tb pode serializar dados que não é adequado para um formato XML, como uma imagem. Usar serialização binária parece com o XmlSerializer. Vc precisa marcar um item com o SerializableAttribute e, em seguida, usar instância do serializador binário para serializar um objeto ou um objeto gráfico para um Stream Serialização binária cria um fluxo (stream) compacto de bytes. Uma coisa que é diferente em comparação com a serialização XML é que os campos privados são serializados por padrão. Outra coisa é que durante a desserialização, nenhum construtor é executado. Você tem que levar isso em conta quando se trabalha com a serialização binária.
exemplo Using binary serialization
Binary serialization Como impedir que os campos sejam serializados?
Qdo o serializador binárionão pode encontrar um campo específico Serialização binária é mais rigorosa do que a serialização XML. Qdo o serializador XML não pode encontrar um campo específico, não irá lançar uma exceção; ela só vai definir a propriedade para o valor padrão. O serializador binário não vai te perdoar. Por isso, é importante ser capaz de influenciar o processo de serialização
OptionalFieldAttribute Vc pode usar o OptionalFieldAttribute para ter certeza de que o serializador binário sabe que um campo será adicionado em uma versão posterior e que objetos serializados anteriores não irá conter esse campo, por exemplo.
Você pode influenciar o processo de serialização e desserialização em quatro fases específicas usando 4 atributos: Você pode influenciar o processo de serialização e desserialização em quatro fases específicas, quando começar e terminar uma ação. Você pode fazer isso usando as quatro seguintes atributos: ■ OnDeserializedAttribute ■ OnDeserializingAttribute ■ OnSerializedAttribute ■ OnSerializingAttribute
exemplo Using attributes to control serialization
problema ao expor dados privados Como resolver? Explicação.. Uma coisa que é importante manter em mente é que um objeto serializado pode expor dados privados que tem segurança sensíveis. TODOS que tem permissões para desserializar o arquivo podem acessar seus dados sensíveis. Se você tem uma classe sensível, você deve implementar a interface ISerializable. Ao implementar essa interface, você tem controle sobre quais valores são serializados. Você pode optar por não serializarr dados sensíveis ou possivelmente criptografar antes de serialização.
exemplo de Implementing ISerializable (explicação nos próximos 2 cards)
Como você pode ver, a implementação de ISerializable consiste de duas partes importantes. Explique a primeira: GetObjectData GetObjectData: Este método é chamado qdo o obj é serializado. Ele deve add os valores q vc deseja serializar como pares de chave/valor para o objeto SerializationInfo que é passado para o método. Uma coisa que é importante é que você deve marcar este método com um atributo SecurityPermission (você pode encontrar este atributo no namespace System.Security.Permissions) para que ele seja autorizado a executar código de serialização e desserialização.
Como você pode ver, a implementação de ISerializable consiste de duas partes importantes. Explique a segunda: adição de um construtor protegido especial O outro passo importante é a adição de um construtor protegido especial que leva um SerializationInfo e StreamingContext. Esse construtor é chamado durante a desserialização, e você usá-lo para recuperar os valores e inicializar seu objeto. Como você pode ver, você está livre em escolher os nomes para os valores que você adicionar para o SerializationInfo. É importante implementar verificações de segurança em seu construtor. Dessa forma, você pode ter certeza de que ninguém tenha mexido com os dados serializados.
Show full summary Hide full summary

Similar

Porova teórica C# mod l
Cursos Professor Jonatã
Linguagem C#
Alex Araujo Furado
Prova teorica C# mo ll
Cursos Professor Jonatã
Entity framework - code first
José Fernandes
Flashcard Módulo 1 - XAMARIN LATINO AMERICA
Marcone Barbosa
Entity framework
José Fernandes
C# and ASP.NET
Kalebi Fiorentini
Linguagens de programação
Rodrigo Barbosa7452
Conceitos do ASP.NET CORE (Incompleto)
José Fernandes Rezende Neto
Dates and times .NET
Felipe Couto Viola
Fluxo Game UC 8
Lucas Coluzzo