Serializace v C # Deserializace s příkladem

Anonim

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 poté 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 # nazvanou Tutorial. A třída má 2 vlastnosti ID a Název výukového programu.

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

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

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

  1. Vytvořte třídu nazvanou Výukový program, která má 2 vlastnosti, jmenovitě ID a Název
  2. Poté z třídy vytvoříme objekt a vlastnosti ID přiřadíme hodnotu 1 a vlastnosti name hodnotu „.Net“.
  3. Poté 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) Prvním krokem je přidání třídy, která bude použita pro serializaci

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 poté připojeno ke třídě Tutorial. Pokud tento atribut nezmiňujete, při pokusu o serializaci třídy se zobrazí chyba.
  2. Další je definice třídy, která bude serializována. Zde definujeme třídu nazvanou „Výukový program“ a poskytujeme 2 vlastnosti, jedna je „ID“ a druhá je „Název“.

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

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. Potom 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 se provádí v binárním formátu. Dále vytvoříme objekt datového proudu. Objekt proudu souboru se používá k otevření souboru Example.txt pro účely psaní. Klíčová slova FileMode.Create a FileMode.Write se používají ke konkrétnímu zmínce, že soubor by měl být otevřen pro účely psaní.
  3. Nakonec použijeme metodu Serialize k přenosu binárních dat do souboru. Poté zavřeme stream, protože operace zápisu je dokončena.

Krok 3) Nakonec, abychom zajistili přítomnost dat v souboru, použijeme deserializaci k deserializaci objektu ze souboru.

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. Vytvoříme objekt „stream“, abychom otevřeli soubor Example.txt v režimu pouze pro čtení.
  2. Potom použijeme třídu formátovače, 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“ na 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:-

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

souhrn

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

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