C # Serializācija & Deserializācija ar piemēru

Anonim

Serializācijas un deserializācijas jēdziens tiek izmantots vienmēr, kad dati, kas attiecas uz objektiem, ir jānosūta no vienas lietojumprogrammas citai. Serializāciju izmanto lietojumprogrammas datu eksportēšanai failā. Pēc tam mērķa lietojumprogramma izmanto deserializāciju, lai datus no lietojumprogrammas iegūtu tālākai lietošanai.

Serializācija ir jēdziens, kurā C # klases objekti tiek ierakstīti vai sērijveidoti failos. Pieņemsim, ka jums bija C # klase ar nosaukumu Tutorial. Klasei ir 2 ID un konsultāciju nosaukuma īpašības.

Serializēšanu var izmantot, lai tieši ierakstītu klases Pamācība datu īpašības failā. Dezerializācija tiek izmantota, lai nolasītu datus no faila un vēlreiz izveidotu objektu Pamācība.

Apskatīsim piemēru, kā mēs to varam sasniegt.

Šajā piemērā mēs veiksim zemāk norādītās augsta līmeņa darbības kodā

  1. Izveidojiet klasi ar nosaukumu Tutorial, kurai ir 2 rekvizīti, proti, ID un Name
  2. Pēc tam mēs izveidosim objektu no klases un piešķirsim īpašumam ID vērtību "1" un vārda īpašumam vērtību ".Net".
  3. Pēc tam mēs izmantosim sērijveidošanu, lai sērijveidotu iepriekš minēto objektu failā ar nosaukumu Example.txt
  4. Visbeidzot, mēs izmantosim deserializāciju, lai deserializētu objektu no faila un parādītu vērtības konsolē.

Konsoles lietojumprogrammas failā program.cs ievadiet zemāk redzamo kodu.

1. solis . Vispirms ir jāpievieno klase, kas tiks izmantota serializēšanai

Koda skaidrojums: -

  1. Klasei, kurai jābūt serializētai, ir jābūt [Serializable] atribūtam. Šis ir atslēgvārds C #. Pēc tam šis atslēgvārds tiek pievienots mācību stundai. Ja nepieminēsiet šo atribūtu, mēģinot seriālizēt klasi, tiks parādīta kļūda.
  2. Tālāk ir definēta klase, kas tiks sērijveidota. Šeit mēs definējam klasi ar nosaukumu "Apmācība" un nodrošinām 2 rekvizītus, viens ir "ID" un otrs ir "Nosaukums".

2. solis . Šajā solī vispirms izveidosim klases Pamācība objektu un sērijveidosim to failā ar nosaukumu Example.txt

Koda skaidrojums: -

  1. Pirmkārt, mēs izveidojam klases Pamācība objektu. Pēc tam mēs piešķiram vērtību "1" ID un ".net" vārda īpašumam.
  2. Pēc tam mēs izmantojam formatēšanas klasi, kas tiek izmantota objekta sērijveidošanai vai konvertēšanai binārā formātā. Dati failā sērijveidā tiek veikti binārā formātā. Tālāk mēs izveidojam failu straumes objektu. Failu straumes objekts tiek izmantots, lai atvērtu failu Example.txt rakstīšanas vajadzībām. Atslēgvārdi FileMode.Create un FileMode.Write tiek izmantoti, lai īpaši pieminētu, ka fails jāatver rakstīšanas vajadzībām.
  3. Visbeidzot, mēs izmantojam metodi Serialize, lai bināros datus pārsūtītu uz failu. Pēc tam mēs straumi aizveram, jo ​​rakstīšanas darbība ir pabeigta.

3. solis. Visbeidzot, lai pārliecinātos, ka failā ir dati, mēs izmantojam deserializāciju, lai deserializētu objektu no faila.

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

Koda skaidrojums: -

  1. Mēs izveidojam objektu "straume", lai atvērtu failu Example.txt tikai lasīšanas režīmā.
  2. Pēc tam mēs izmantojam formatēšanas klasi, kas tiek izmantota objekta deserializēšanai, kas tiek glabāts failā Example.txt. Atgrieztais objekts ir iestatīts uz objektu new.
  3. Visbeidzot, mēs parādām objekta "objnew" īpašības konsolei, izmantojot rekvizītus "ID" un "nosaukums".

Kad iepriekšējais kods ir iestatīts un projekts tiek palaists, izmantojot Visual Studio, jūs iegūsiet zemāk redzamo izvadi.

Izeja: -

No iepriekš minētās izejas var redzēt, ka faila vērtības tika pareizi deserializētas un parādītas konsolē.

Kopsavilkums

Serializācija tiek izmantota klases objektu ierakstīšanai failos.

De-Serialization tiek izmantota objektu atgūšanai no faila.