Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Serialização e desserialização em C# com exemplo

Serialização e desserialização em C#


O conceito de serialização e desserialização é usado sempre que dados pertencentes a objetos precisam ser enviados de um aplicativo para outro. A serialização é usada para exportar dados do aplicativo para um arquivo. O aplicativo de destino usa a desserialização para extrair os dados do aplicativo para uso posterior.

A serialização é um conceito no qual objetos de classe C# são escritos ou serializados em arquivos. Digamos que você tenha uma classe C# chamada Tutorial. E a classe tem 2 propriedades de nome de ID e Tutoriais.

A serialização pode ser usada para gravar diretamente as propriedades de dados da classe Tutorial em um arquivo. A desserialização é usada para ler os dados do arquivo e construir o objeto Tutorial novamente.

Como serializar um objeto em C#


Vejamos um exemplo de como podemos conseguir isso.

Em nosso exemplo, vamos executar as etapas de alto nível abaixo no código
  1. Crie uma classe chamada Tutorial que tenha 2 propriedades, ou seja, ID e Nome
  2. Em seguida, criaremos um objeto da classe e atribuiremos um valor "1" à propriedade ID e um valor ".Net" à propriedade name.
  3. Usaremos então a serialização para serializar o objeto acima em um arquivo chamado Example.txt
  4. Por fim, usaremos a desserialização para desserializar o objeto do arquivo e exibir os valores no Console.

Digite o código abaixo no arquivo program.cs do aplicativo de console.

Etapa 1) Adicione a classe.
O primeiro passo é adicionar a classe que será usada para serialização



Explicação do código:-

  1. A classe que precisa ser serializada precisa ter o atributo [Serializable]. Esta é uma palavra-chave em C#. Essa palavra-chave é então anexada à classe Tutorial. Se você não mencionar esse atributo, receberá um erro ao tentar serializar a classe.
  2. A seguir está a definição da classe que será serializada. Aqui estamos definindo uma classe chamada "Tutorial" e fornecendo 2 propriedades, uma é "ID" e a outra é "Nome".

Etapa 2) Crie o objeto.
Nesta etapa, primeiro vamos criar o objeto da classe Tutorial e serializá-lo para o arquivo chamado Example.txt



Explicação do código:-

  1. Primeiro, criamos um objeto da classe Tutorial. Em seguida, atribuímos o valor "1" ao ID e ".net" à propriedade name.
  2. Em seguida, usamos a classe formatador que é usada para serializar ou converter o objeto em um formato binário. Os dados no arquivo em serialização são feitos em formato binário. Em seguida, criamos um objeto de fluxo de arquivo. O objeto file stream é usado para abrir o arquivo Example.txt para fins de escrita. As palavras-chave FileMode.Create e FileMode.Write são usadas para mencionar especificamente que o arquivo deve ser aberto para fins de escrita.
  3. Por fim, usamos o método Serialize para transferir os dados binários para o arquivo. Em seguida, fechamos o fluxo, pois a operação de gravação está concluída.

Etapa 3) Use desserialização.
Finalmente, para garantir que os dados estejam presentes no arquivo, usamos desserialização para desserializar o objeto do arquivo.


using System;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  [Serializable]
  class Tutorial
  {
  public int ID;
  public String Name;
   static void Main(string[] args)
   {
    Tutorial obj = new Tutorial();
    obj.ID = 1;
    obj.Name = ".Net";

    IFormatter formatter = new BinaryFormatter();
    Stream stream = new FileStream(@"E:\ExampleNew.txt",FileMode.Create,FileAccess.Write);

    formatter.Serialize(stream, obj);
    stream.Close();

    stream = new FileStream(@"E:\ExampleNew.txt",FileMode.Open,FileAccess.Read);
    Tutorial objnew = (Tutorial)formatter.Deserialize(stream);

    Console.WriteLine(objnew.ID);
    Console.WriteLine(objnew.Name);

    Console.ReadKey();
  }
 }
}

Explicação do código:-
  1. Criamos o objeto “stream” para abrir o arquivo Example.txt no modo somente leitura.
  2. Em seguida, usamos a classe formatador que é usada para desserializar o objeto, que é armazenado no arquivo Example.txt. O objeto retornado é definido como o objeto objnew.
  3. Por fim, exibimos as propriedades do objeto “objnew” no console usando as propriedades “ID” e “name”.

Quando o código acima estiver definido e o projeto for executado usando o Visual Studio, você obterá a saída abaixo.

Saída:-



Você pode ver na saída acima que os valores do arquivo foram desserializados corretamente e exibidos no console.

Resumo


A serialização é usada para gravar objetos de classe em arquivos.

A deserialização é usada para recuperar os objetos do arquivo.

Linguagem C

  1. Classe e objeto C#
  2. Classe abstrata e método C#
  3. C# Classe Parcial e Método Parcial
  4. Classe e método selados em C#
  5. Classe de arquivo Java
  6. Operadores em C++ com Exemplo:O que é, Tipos e Programas
  7. Diferença entre estrutura e classe:explicada com exemplo de C++
  8. Tutorial de classe abstrata C# com exemplo:O que é abstração?
  9. Java BufferedReader:Como Ler Arquivo em Java com Exemplo
  10. type() e isinstance() em Python com exemplos