Serializace a deserializace v C# s příkladem

Serializace a deserializace v C#

Koncept serializace a deserializace se používá vždy, když je třeba odeslat data týkající se objektů z jedné aplikace do druhé. Serializace se používá k exportu dat aplikace do souboru. Cílová aplikace pak pomocí deserializace extrahuje data z aplikace pro další použití.

Serializace je koncept, ve kterém jsou objekty třídy C# zapisovány nebo serializovány do souborů. Řekněme, že jste měli třídu C# s názvem Tutorial. A třída má 2 vlastnosti ID a název Tutorials.

Serializaci lze použít k přímému zápisu vlastností dat třídy Tutorial do souboru. Deserializace se používá k načtení dat ze souboru a opětovné konstrukci objektu Tutorial.

Jak serializovat objekt v C#

Podívejme se na příklad, jak toho můžeme dosáhnout.

V našem příkladu provedeme v kódu níže uvedené kroky na vysoké úrovni

  1. Vytvořte třídu s názvem Tutorial, která má 2 vlastnosti, jmenovitě ID a Název
  2. Poté vytvoříme objekt z třídy a přiřadíme hodnotu „1“ vlastnosti ID a hodnotu „.Net“ vlastnosti name.
  3. Potom použijeme serializaci k serializaci výše uvedeného objektu do souboru s názvem Example.txt
  4. Nakonec použijeme deserializaci k deserializaci objektu ze souboru a zobrazení hodnot v konzole.


Zadejte níže uvedený kód do souboru program.cs konzolové aplikace.

Krok 1) Přidejte třídu.

Prvním krokem je přidání třídy, která bude použita pro serializaci

Serializovat objekt v C#

Vysvětlení kódu:-

  1. Třída, kterou je třeba serializovat, musí mít atribut [Serializable]. Toto je klíčové slovo v C#. Toto klíčové slovo je pak připojeno ke třídě Tutorial. Pokud tento atribut nezmíníte, při pokusu o serializaci třídy se zobrazí chyba.
  2. Dále je definována třída, která bude serializována. Zde definujeme třídu s názvem „Výukový program“ a poskytujeme 2 vlastnosti, jedna je „ID“ a druhá je „Název“.

Krok 2) Vytvořte objekt.

V tomto kroku nejprve vytvoříme objekt třídy Tutorial a serializujeme jej do souboru s názvem Example.txt

Serializovat objekt v C#

Vysvětlení kódu:-

  1. Nejprve vytvoříme objekt třídy Tutorial. Poté přiřadíme hodnotu „1“ ID a „.net“ vlastnosti name.
  2. Poté použijeme třídu formátovače, která se používá k serializaci nebo převodu objektu do binárního formátu. Data v souboru v serializaci jsou provedena v binárním formátu. Dále vytvoříme objekt souborového proudu. Objekt file stream se používá k otevření souboru Example.txt pro účely zápisu. Klíčová slova FileMode.Create a FileMode.Write se používají ke konkrétní zmínce, že soubor by měl být otevřen pro účely zápisu.
  3. Nakonec použijeme metodu Serialize k přenosu binárních dat do souboru. Poté stream zavřeme od zápisu operace je kompletní.

Krok 3) Použijte deserializaci.

Nakonec, abychom zajistili, že data jsou v souboru přítomna, použijeme deserializaci k deserializaci objektu ze souboru.

Serializovat objekt v C#

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();
  }
 }
}

Vysvětlení kódu:-

  1. Vytváříme objekt "proud” pro otevření souboru Example.txt v režimu pouze pro čtení.
  2. Poté použijeme třídu formatter, která se používá k deserializaci objektu, který je uložen v souboru Example.txt. Vrácený objekt je nastaven na objekt objnew.
  3. Nakonec zobrazíme vlastnosti objektu „objnew“ konzoli pomocí vlastností „ID“ a „name“.

Když je nastaven výše uvedený kód a projekt je spuštěn pomocí Visual Studio, získáte níže uvedený výstup.

Výstup:-

Serializovat objekt v C#

Z výše uvedeného výstupu můžete vidět, že hodnoty ze souboru byly správně deserializovány a zobrazeny v konzole.

Shrnutí

Serializace se používá k zápisu objektů třídy do souborů.

De-serializace se používá k obnovení objektů ze souboru.