Serializácia v C # Deserializácia s príkladom

Anonim

Pojem serializácia a deserializácia sa používa vždy, keď je potrebné odosielať údaje týkajúce sa objektov z jednej aplikácie do druhej. Serializácia sa používa na export údajov aplikácie do súboru. Cieľová aplikácia potom použije deserializáciu na extrahovanie údajov z aplikácie na ďalšie použitie.

Serializácia je koncept, pri ktorom sa objekty triedy C # zapisujú alebo serializujú do súborov. Povedzme, že ste mali triedu C # s názvom Tutorial. A trieda má 2 vlastnosti ID a názvu tutoriálov.

Serializáciu je možné použiť na priamy zápis dátových vlastností triedy Tutorial do súboru. Deserializácia sa používa na načítanie údajov zo súboru a na opätovné zostavenie objektu Tutorial.

Pozrime sa na príklad toho, ako to môžeme dosiahnuť.

V našom príklade vykonáme nižšie uvedené kroky na vysokej úrovni v kóde

  1. Vytvorte triedu s názvom Tutorial, ktorá má dve vlastnosti, konkrétne ID a meno
  2. Potom vytvoríme objekt z triedy a vlastnosti ID priradíme hodnotu "1" a vlastnosti name hodnotu ".Net".
  3. Potom použijeme serializáciu na serializáciu vyššie uvedeného objektu do súboru s názvom Example.txt
  4. Nakoniec použijeme deserializáciu na deserializáciu objektu zo súboru a zobrazenie hodnôt v konzole.

Zadajte nasledujúci kód do súboru program.cs konzolovej aplikácie.

Krok 1) Prvým krokom je pridanie triedy, ktorá sa použije na serializáciu

Vysvetlenie kódu: -

  1. Trieda, ktorá musí byť serializovaná, musí mať atribút [Serializable]. Toto je kľúčové slovo v C #. Toto kľúčové slovo je potom pripojené k triede Tutorial. Ak tento atribút nezmeníte, pri pokuse o serializáciu triedy sa zobrazí chyba.
  2. Ďalej nasleduje definícia triedy, ktorá bude serializovaná. Tu definujeme triedu nazvanú „Výukový program“ a poskytujeme dve vlastnosti, jedna je „ID“ a druhá je „Meno“.

Krok 2) V tomto kroku najskôr vytvoríme objekt triedy Tutorial a serializujeme ho do súboru s názvom Example.txt

Vysvetlenie kódu: -

  1. Najskôr vytvoríme objekt triedy Tutorial. Potom priradíme hodnotu „1“ ID a „.net“ vlastnosti name.
  2. Potom použijeme triedu formátovača, ktorá sa používa na serializáciu alebo prevod objektu do binárneho formátu. Údaje v súbore sa serializujú v binárnom formáte. Ďalej vytvoríme objekt toku súborov. Objekt toku súborov sa používa na otvorenie súboru Example.txt na účely písania. Kľúčové slová FileMode.Create a FileMode.Write sa používajú na konkrétnu zmienku, že súbor by sa mal otvárať na účely písania.
  3. Na záver použijeme metódu Serialize na prenos binárnych údajov do súboru. Potom zatvoríme prúd, pretože operácia zápisu je dokončená.

Krok 3) Nakoniec, aby sme sa uistili, že údaje sú v súbore, použijeme deserializáciu na deserializáciu objektu zo súboru.

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

Vysvetlenie kódu: -

  1. Vytvoríme objekt „stream“, aby sme otvorili súbor Example.txt v režime iba na čítanie.
  2. Potom použijeme triedu formátovača, ktorá sa používa na deserializáciu objektu, ktorý je uložený v súbore Example.txt. Vrátený objekt je nastavený na objekt objnew.
  3. Na záver zobrazíme vlastnosti objektu „objnew“ na konzolu pomocou vlastností „ID“ a „name“.

Keď je nastavený vyššie uvedený kód a projekt je spustený pomocou Visual Studio, získate výstup uvedený nižšie.

Výkon:-

Z vyššie uvedeného výstupu vidíte, že hodnoty zo súboru boli správne deserializované a zobrazené v konzole.

Zhrnutie

Serializácia sa používa na zápis objektov triedy do súborov.

De-serializácia sa používa na obnovenie objektov zo súboru.