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
- Vytvořte třídu nazvanou Výukový program, která má 2 vlastnosti, jmenovitě ID a Název
- Poté z třídy vytvoříme objekt a vlastnosti ID přiřadíme hodnotu 1 a vlastnosti name hodnotu „.Net“.
- Poté použijeme serializaci k serializaci výše uvedeného objektu do souboru s názvem Example.txt
- 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: -
- 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.
- 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: -
- Nejprve vytvoříme objekt třídy Tutorial. Poté přiřadíme hodnotu „1“ ID a „.net“ vlastnosti name.
- 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í.
- 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: -
- Vytvoříme objekt „stream“, abychom otevřeli soubor Example.txt v režimu pouze pro čtení.
- 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.
- 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.