Serialização no .NET
A serialização é o processo de conversão do estado de um objeto em um formulário que possa ser persistido ou transportado. O complemento de serialização é desserialização, que converte um fluxo em um objeto. Juntos, esses processos permitem que os dados sejam armazenados e transferidos com facilidade.
O .NET apresenta as seguintes tecnologias de serialização:
A serialização binária preserva a fidelidade do tipo, o que é útil para preservar o estado de um objeto entre diferentes chamadas de um aplicativo. Por exemplo, você pode compartilhar um objeto entre diferentes aplicativos serializando-o para a área de transferência. Você pode serializar um objeto para um fluxo, um disco, a memória, pela rede, e assim por diante. O acesso remoto usa a serialização para passar objetos “por valor” de um computador ou domínio de aplicativo para outro.
A serialização XML e SOAP só serializa as propriedades públicas e os 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 atrativa para compartilhar dados pela Web. SOAP é, da mesma forma, um padrão aberto, uma opção atrativa.
A serialização JSON serializa somente as propriedades públicas e não preserva a fidelidade de tipo. O JSON é um padrão aberto que é uma opção interessante para compartilhar dados na Web.
Referência
System.Runtime.Serialization
Contém classes que podem ser usadas para serialização e desserialização de objetos.
System.Xml.Serialization
Contém classes que podem ser usadas para serializar objetos em documentos ou fluxos de formato XML.
System.Text.Json
Contém classes que podem ser usadas para serializar objetos em documentos ou fluxos de formato JSON.