Partilhar via


Serialização no .NET

A serialização é o processo de conversão do estado de um objeto em um formulário que pode ser persistido ou transportado. O complemento da serialização é a desserialização, que converte um fluxo em um objeto. Em conjunto, estes processos permitem que os dados sejam armazenados e transferidos.

O .NET apresenta as seguintes tecnologias de serialização:

  • A serialização JSON mapeia objetos .NET de e para JavaScript Object Notation (JSON). JSON é um padrão aberto que é comumente usado para compartilhar dados na Web. O serializador JSON serializa propriedades públicas por padrão e também pode ser configurado para serializar membros privados e internos.

  • A serialização XML e SOAP serializa apenas public propriedades e campos e não preserva a fidelidade de tipo. Isso é útil quando você deseja fornecer ou consumir dados sem restringir o aplicativo que usa os dados. Como o XML é um padrão aberto, é uma opção atraente para compartilhar dados na Web. SOAP também é um padrão aberto, o que o torna uma escolha atraente.

  • A serialização binária preserva a fidelidade de tipo, o que significa que o estado completo do objeto é registrado e, quando você desserializa, uma cópia exata é criada. Esse tipo de serialização é útil para preservar o estado de um objeto entre diferentes invocações de um aplicativo. Por exemplo, pode-se compartilhar um objeto entre diferentes aplicativos ao transferi-lo para a Área de Transferência. Você pode serializar um objeto para um fluxo, para um disco, para a memória, pela rede e assim por diante. A comunicação remota usa a serialização para passar objetos "por valor" de um computador ou domínio de aplicativo para outro.

    Advertência

    A serialização binária com BinaryFormatter pode ser perigosa. Para obter mais informações, consulte o guia de segurança BinaryFormatter e o guia de migração BinaryFormatter.

Referência

System.Text.Json
Contém classes que podem ser usadas para serializar objetos em documentos ou fluxos no formato JSON.

System.Runtime.Serialization
Contém classes que podem ser usadas para serializar e desserializar objetos.

System.Xml.Serialization
Contém classes que podem ser usadas para serializar objetos em documentos ou fluxos de formato XML.