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#: Exemplo Prático

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

Serialização e desserialização são essenciais quando dados de objeto devem mover entre aplicações ou persistir entre sessões. Em C#, serialização escreve o estado de um objeto para um meio de armazenamento — comumente um arquivo — enquanto desserialização reconstrói o objeto a partir dessa representação armazenada.

Considere uma classe simples, Tutorial, que mantém duas propriedades: ID e Name. Ao serializar uma instância desta classe para um arquivo, podemos depois ler o arquivo e recriar o mesmo objeto com seus dados originais intactos.

Como Serializar um Objeto em C#

Abaixo está um passo a passo que demonstra o processo em uma aplicação console.

  1. Crie uma classe Tutorial com as propriedades ID e Name.
  2. Instancie a classe, atribuindo ID = 1 e Name = ".Net".
  3. Serializar o objeto para um arquivo chamado Example.txt.
  4. Desserializar o objeto do arquivo e exibir seus valores no console.

Cole o seguinte código no seu arquivo Program.cs.

Passo 1) Adicione a classe. O primeiro passo é adicionar a classe que será serializada.

Serialização e Desserialização em C#: Exemplo Prático

Explicação do Código:

  1. A classe deve ser marcada com o atributo [Serializable]; caso contrário, a serialização falhará.
  2. Defina a classe Tutorial com dois campos: int ID e string Name.

Passo 2) Crie o objeto e serialize-o. Neste passo, instanciamos o objeto Tutorial e o escrevemos em Example.txt.

Serialização e Desserialização em C#: Exemplo Prático

Explicação do Código:

  1. Crie uma instância de Tutorial e defina ID = 1 e Name = ".Net".
  2. Instancie um BinaryFormatter (nota: BinaryFormatter é obsoleto no .NET 5+; considere System.Text.Json ou XmlSerializer para código de produção).
  3. Abra um FileStream em FileMode.Create e FileAccess.Write para escrever os dados binários.
  4. Chame formatter.Serialize para escrever o objeto no stream, depois feche o stream.

Passo 3) Desserialize o objeto. Finalmente, leia os dados de volta do arquivo para verificar o processo.

Serialização e Desserialização em C#: Exemplo Prático

using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
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. Abrir o arquivo em modo leitura.
  2. Desserializar os dados binários de volta em uma instância Tutorial.
  3. Imprimir ID e Name no console.

Executar o programa no Visual Studio produz a seguinte saída:

Saída:

Serialização e Desserialização em C#: Exemplo Prático

Como mostrado, os valores foram corretamente recuperados do arquivo.

Resumo

Serialização escreve dados de objeto em um arquivo, enquanto desserialização lê esses dados de volta em um objeto. Esta técnica fundamental sustenta muitos cenários de troca de dados no .NET.

Linguagem C

  1. Classes e Objetos em C#: Fundamentos para POO Robusta
  2. Dominando Classes e Métodos Abstratos em C#: Guia Prático
  3. Entendendo Classes e Métodos Parciais em C#
  4. Dominando Classes e Métodos Sealed em C#: Quando Usar, Exemplos Claros e Segurança de Código
  5. Dominando Operações de Arquivo em Java com java.io – Criação, Leitura, Escrita e Exclusão
  6. Operadores em C++ Explicados: Tipos, Exemplos e Programas Práticos
  7. C++ Struct vs Class: Diferenças Principais, Sintaxe e Melhores Casos de Uso
  8. Classes Abstratas em C#: Tutorial Prático com Exemplos de Código
  9. Lendo Arquivos em Java com BufferedReader – Guia Prático com Exemplos
  10. Entendendo type() e isinstance() em Python: Exemplos Práticos