C # Serialisering & Deserialisering med eksempel

Anonim

Begrebet Serialisering og deserialisering bruges, når data vedrørende objekter skal sendes fra en applikation til en anden. Serialisering bruges til at eksportere applikationsdata til en fil. Destinationsapplikationen bruger derefter deserialisering til at udtrække dataene fra applikationen til yderligere brug.

Serialisering er et koncept, hvor C # -klasseobjekter skrives eller serialiseres til filer. Lad os sige, at du havde en C #-klasse, der hedder Tutorial. Og klassen har 2 egenskaber for ID og tutorials navn.

Serialisering kan bruges til direkte at skrive dataegenskaberne i klassen Tutorial til en fil. Deserialisering bruges til at læse dataene fra filen og konstruere tutorial-objektet igen.

Lad os se på et eksempel på, hvordan vi kan opnå dette.

I vores eksempel skal vi udføre nedenstående trin på højt niveau i koden

  1. Opret en klasse kaldet Tutorial, der har 2 egenskaber, nemlig ID og navn
  2. Vi opretter derefter et objekt fra klassen og tildeler værdien "1" til ID-ejendommen og en værdi af ". Net" til egenskaben navn.
  3. Vi bruger derefter serialisering til at serialisere ovennævnte objekt til en fil kaldet Example.txt
  4. Endelig bruger vi deserialisering til at deserialisere objektet fra filen og vise værdierne i konsollen.

Indtast nedenstående kode i program.cs-filen i konsolapplikationen.

Trin 1) Det første trin er at tilføje den klasse, der skal bruges til serialisering

Kode Forklaring: -

  1. Klassen, der skal serialiseres, skal have attributten [Serializable]. Dette er et nøgleord i C #. Dette nøgleord vedhæftes derefter klassen Tutorial. Hvis du ikke nævner denne attribut, får du en fejl, når du prøver at serieisere klassen.
  2. Dernæst er definitionen af ​​den klasse, der vil blive serieliseret. Her definerer vi en klasse kaldet "Tutorial" og leverer 2 egenskaber, den ene er "ID" og den anden er "Name".

Trin 2) I dette trin opretter vi først objektet til klasse Tutorial og serialiserer det til filen kaldet Example.txt

Kode Forklaring: -

  1. Først opretter vi et objekt fra klassen Tutorial. Vi tildeler derefter værdien "1" til ID og ".net" til egenskaben navn.
  2. Vi bruger derefter formatter-klassen, der bruges til at serieisere eller konvertere objektet til et binært format. Dataene i filen i serialisering udføres i binært format. Dernæst opretter vi et filstream-objekt. Filstrømobjektet bruges til at åbne filen Example.txt til skriveformål. Nøgleordene FileMode.Create og FileMode.Write bruges til specifikt at nævne, at filen skal åbnes til skriveformål.
  3. Endelig bruger vi Serialize-metoden til at overføre binære data til filen. Vi lukker derefter strømmen, da skrivehandlingen er afsluttet.

Trin 3) Endelig for at sikre, at dataene er til stede i filen, bruger vi deserialisering til at deserialisere objektet fra filen.

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

Kode Forklaring: -

  1. Vi opretter objektet "stream" for at åbne filen Example.txt i skrivebeskyttet tilstand.
  2. Vi bruger derefter formatterklassen, der bruges til at deserialisere objektet, der er gemt i filen Eksempel.txt. Det returnerede objekt er indstillet til objektet objnew.
  3. Endelig viser vi egenskaberne for objektet "objnew" til konsollen ved hjælp af "ID" og "name" egenskaberne.

Når ovenstående kode er indstillet, og projektet køres ved hjælp af Visual Studio, får du nedenstående output.

Produktion:-

Du kan se fra ovenstående output, at værdierne fra filen blev deserialiseret korrekt og vist i konsollen.

Resumé

Serialisering bruges til at skrive klasseobjekter til filer.

De-serialisering bruges til at gendanne objekterne fra filen.