Koncept serializacije in deserializacije se uporablja, kadar je treba podatke, ki se nanašajo na predmete, pošiljati iz ene aplikacije v drugo. Serializacija se uporablja za izvoz podatkov aplikacije v datoteko. Nato ciljna aplikacija s pomočjo deserializacije pridobi podatke iz aplikacije za nadaljnjo uporabo.
Serializacija je koncept, pri katerem se predmeti razreda C # zapisujejo ali serializirajo v datoteke. Recimo, da ste imeli razred C # z imenom Tutorial. Razred ima dve lastnosti ID in Tutorials name.
Serializiranje lahko uporabite za neposredno zapisovanje podatkovnih lastnosti razreda Vadnica v datoteko. Deserializacija se uporablja za branje podatkov iz datoteke in ponovno izdelavo predmeta Vadnica.
Oglejmo si primer, kako lahko to dosežemo.
V našem primeru bomo izvedli spodnje korake na visoki ravni v kodi
- Ustvarite razred z imenom Vadnica, ki ima dve lastnosti, in sicer ID in Ime
- Nato bomo iz razreda ustvarili objekt in lastnosti ID dodelili vrednost "1", lastnosti imena pa vrednost ".Net".
- Nato bomo s serializacijo zgoraj navedeni objekt serializirali v datoteko z imenom Example.txt
- Končno bomo z deserializacijo uporabili za deserializacijo predmeta iz datoteke in prikaz vrednosti v konzoli.
V datoteko program.cs konzole vnesite spodnjo kodo.
Korak 1) Prvi korak je dodati razred, ki bo uporabljen za serializacijo
Pojasnilo kode: -
- Razred, ki ga je treba serializirati, mora imeti atribut [Serializable]. To je ključna beseda v jeziku C #. Ta ključna beseda je nato priložena razredu Vadnica. Če tega atributa ne omenite, se pri poskusu serializacije razreda prikaže napaka.
- Naslednja je definicija razreda, ki bo serializiran. Tu definiramo razred, imenovan "Vadnica", in nudimo 2 lastnosti, ena je "ID", druga pa "Ime".
Korak 2) V tem koraku bomo najprej ustvarili predmet razreda Vadnica in ga serializirali v datoteko z imenom Example.txt
Pojasnilo kode: -
- Najprej ustvarimo objekt razreda Vadnica. Nato dodelimo vrednost "1" ID-ju in ".net" lastnosti lastnosti.
- Nato uporabimo razred oblikovalnika, ki se uporablja za serializacijo ali pretvorbo predmeta v binarni format. Podatki v datoteki v serializaciji so narejeni v binarni obliki. Nato ustvarimo objekt toka datotek. Objekt toka datotek se uporablja za odpiranje datoteke Example.txt za namene pisanja. Ključni besedi FileMode.Create in FileMode.Write se uporabljata, da posebej omenita, da je treba datoteko odpreti za pisanje.
- Na koncu uporabimo metodo Serialize za prenos binarnih podatkov v datoteko. Nato tok zapremo, saj je operacija pisanja končana.
Korak 3) Nazadnje, da zagotovimo, da so podatki v datoteki, z deserializacijo uporabimo deserializacijo predmeta iz datoteke.
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();}}}
Pojasnilo kode: -
- Ustvarimo objekt "stream", da odpremo datoteko Example.txt v načinu samo za branje.
- Nato uporabimo razred oblikovalnika, ki se uporablja za deserializacijo predmeta, ki je shranjen v datoteki Example.txt. Vrnjeni predmet je nastavljen na objekt objnew.
- Na koncu v konzolo prikažemo lastnosti predmeta "objnew" z uporabo lastnosti "ID" in "name".
Ko nastavite zgornjo kodo in projekt zaženete z Visual Studio, boste dobili spodnji izhod.
Izhod: -
Iz zgornjega izhoda lahko vidite, da so bile vrednosti iz datoteke pravilno deserializirane in prikazane v konzoli.
Povzetek
Serializacija se uporablja za zapisovanje predmetov razredov v datoteke.
De-serializacija se uporablja za obnovitev predmetov iz datoteke.