C # Serialisering & Deserialisering med eksempel

Anonim

Konseptet med serialisering og deserialisering brukes når data knyttet til objekter må sendes fra en applikasjon til en annen. Serialisering brukes til å eksportere applikasjonsdata til en fil. Destinasjonsapplikasjonen bruker deretter deserialisering for å trekke ut dataene fra applikasjonen for videre bruk.

Serialisering er et konsept der C # -klasseobjekter skrives eller serialiseres til filer. La oss si at du hadde en C #-klasse som heter Tutorial. Og klassen har to egenskaper for ID og opplæringsnavn.

Serialisering kan brukes til å direkte skrive dataegenskapene til opplæringsklassen til en fil. Deserialisering brukes til å lese dataene fra filen og konstruere opplæringsobjektet igjen.

La oss se på et eksempel på hvordan vi kan oppnå dette.

I vårt eksempel skal vi utføre trinnene på høyt nivå i koden

  1. Lag en klasse som heter Tutorial som har to egenskaper, nemlig ID og Navn
  2. Vi oppretter deretter et objekt fra klassen og tildeler ID-egenskapen en verdi på "1" og navnet på ".Net" til verdien på ID.
  3. Vi vil deretter bruke serialisering til å serieisere ovennevnte objekt til en fil som heter Example.txt
  4. Til slutt vil vi bruke deserialisering til å deserialisere objektet fra filen og vise verdiene i konsollen.

Skriv inn koden nedenfor i program.cs-filen i konsollapplikasjonen.

Trinn 1) Det første trinnet er å legge til klassen som skal brukes til serialisering

Kode Forklaring: -

  1. Klassen som må serialiseres, må ha attributtet [Serializable]. Dette er et nøkkelord i C #. Dette nøkkelordet blir deretter knyttet til opplæringsklassen. Hvis du ikke nevner dette attributtet, vil du få en feil når du prøver å serieisere klassen.
  2. Neste er definisjonen av klassen som skal serieiseres. Her definerer vi en klasse som heter "Tutorial" og gir 2 egenskaper, den ene er "ID" og den andre er "Name".

Trinn 2) I dette trinnet vil vi først lage objektet til opplæringsklassen og serieisere det til filen som heter Eksempel.txt

Kode Forklaring: -

  1. Først lager vi et objekt fra opplæringsklassen. Vi tilordner deretter verdien "1" til ID og ".net" til navnegenskapen.
  2. Vi bruker deretter formaterklassen som brukes til å serieisere eller konvertere objektet til et binært format. Dataene i filen i serieisering gjøres i binært format. Deretter oppretter vi et filstrømobjekt. Filstrømobjektet brukes til å åpne filen Example.txt for skrivingsformål. Nøkkelordene FileMode.Create og FileMode.Write brukes til å spesifikt nevne at filen skal åpnes for skriveformål.
  3. Til slutt bruker vi Serialize-metoden for å overføre binære data til filen. Vi lukker deretter strømmen, siden skriveoperasjonen er fullført.

Trinn 3) Til slutt for å sikre at dataene er tilstede i filen, bruker vi deserialisering for å 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 oppretter objektet "stream" for å åpne filen Example.txt i skrivebeskyttet modus.
  2. Vi bruker deretter formaterklassen som brukes til å deserialisere objektet, som er lagret i filen Eksempel.txt. Objektet som returneres er satt til objektet objnew.
  3. Til slutt viser vi egenskapene til objektet "objnew" til konsollen ved hjelp av "ID" og "name" -egenskapene.

Når koden ovenfor er angitt, og prosjektet kjøres ved hjelp av Visual Studio, får du utdataene nedenfor.

Produksjon:-

Du kan se fra ovenstående utdata at verdiene fra filen ble deserialisert riktig og vist i konsollen.

Sammendrag

Serialisering brukes til å skrive klasseobjekter til filer.

Avserialisering brukes til å gjenopprette objektene fra filen.