Conceptul de serializare și deserializare este utilizat ori de câte ori datele referitoare la obiecte trebuie trimise de la o aplicație la alta. Serializarea este utilizată pentru a exporta datele aplicației într-un fișier. Aplicația de destinație folosește apoi deserializarea pentru a extrage datele din aplicație în vederea utilizării ulterioare.
Serializarea este un concept în care obiectele clasei C # sunt scrise sau serializate în fișiere. Să presupunem că ați avut o clasă C # numită Tutorial. Și clasa are 2 proprietăți ale ID-ului și ale tutorialelor.
Serializarea poate fi utilizată pentru a scrie direct proprietățile de date ale clasei Tutorial într-un fișier. Deserializarea este utilizată pentru a citi datele din fișier și a construi din nou obiectul Tutorial.
Să vedem un exemplu al modului în care putem realiza acest lucru.
În exemplul nostru, vom efectua pașii de la nivel înalt de mai jos din cod
- Creați o clasă numită Tutorial care are 2 proprietăți, și anume ID și Nume
- Vom crea apoi un obiect din clasă și vom atribui o valoare "1" proprietății ID și o valoare ".Net" proprietății nume.
- Vom folosi apoi serializarea pentru a serializa obiectul de mai sus într-un fișier numit Example.txt
- În cele din urmă, vom folosi deserializarea pentru a deserializa obiectul din fișier și pentru a afișa valorile în Consolă.
Introduceți codul de mai jos în fișierul program.cs al aplicației consolei.
Pasul 1) Primul pas este să adăugați clasa care va fi utilizată pentru serializare
Cod Explicație: -
- Clasa care trebuie serializată trebuie să aibă atributul [Serializable]. Acesta este un cuvânt cheie în C #. Acest cuvânt cheie este apoi atașat clasei Tutorial. Dacă nu menționați acest atribut, veți primi o eroare atunci când încercați să serializați clasa.
- Urmează definiția clasei care va fi serializată. Aici definim o clasă numită „Tutorial” și oferim 2 proprietăți, una este „ID” și cealaltă este „Nume”.
Pasul 2) În acest pas, mai întâi vom crea obiectul clasei Tutorial și îl vom serializa în fișierul numit Example.txt
Cod Explicație: -
- În primul rând, creăm un obiect al clasei Tutorial. Apoi atribuim valoarea „1” ID-ului și „.net” proprietății nume.
- Apoi folosim clasa de formatare care este utilizată pentru a serializa sau converti obiectul într-un format binar. Datele din fișier în serializare sunt realizate în format binar. Apoi, creăm un obiect de flux de fișiere. Obiectul fluxului de fișiere este utilizat pentru a deschide fișierul Example.txt în scopul scrierii. Cuvintele cheie FileMode.Create și FileMode.Write sunt utilizate pentru a menționa în mod specific că fișierul ar trebui să fie deschis în scopuri de scriere.
- În cele din urmă, folosim metoda Serialize pentru a transfera datele binare în fișier. Apoi închidem fluxul, deoarece operațiunea de scriere este finalizată.
Pasul 3) Pentru a ne asigura că datele sunt prezente în fișier, folosim deserializarea pentru a deserializa obiectul din fișier.
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();}}}
Cod Explicație: -
- Creăm obiectul „stream” pentru a deschide fișierul Example.txt în modul numai citire.
- Apoi folosim clasa de formatare care este utilizată pentru a deserializa obiectul, care este stocat în fișierul Example.txt. Obiectul returnat este setat la obiectul obiect nou.
- În cele din urmă, afișăm proprietățile obiectului „objnew” către consolă folosind proprietățile „ID” și „nume”.
Când codul de mai sus este setat și proiectul este rulat utilizând Visual Studio, veți obține rezultatul de mai jos.
Ieșire: -
Puteți vedea din ieșirea de mai sus că valorile din fișier au fost deserializate corect și afișate în consolă.
rezumat
Serializarea este utilizată pentru a scrie obiecte de clasă în fișiere.
De-Serializarea este utilizată pentru a recupera obiectele din fișier.