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
- Vytvorte triedu s názvom Tutorial, ktorá má dve vlastnosti, konkrétne ID a meno
- Potom vytvoríme objekt z triedy a vlastnosti ID priradíme hodnotu "1" a vlastnosti name hodnotu ".Net".
- Potom použijeme serializáciu na serializáciu vyššie uvedeného objektu do súboru s názvom Example.txt
- 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: -
- 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.
- Ď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: -
- Najskôr vytvoríme objekt triedy Tutorial. Potom priradíme hodnotu „1“ ID a „.net“ vlastnosti name.
- 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.
- 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: -
- Vytvoríme objekt „stream“, aby sme otvorili súbor Example.txt v režime iba na čítanie.
- 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.
- 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.