C # Serialiseerimine & Deserialiseerimine näitega

Anonim

Serialiseerimise ja deserialiseerimise kontseptsiooni kasutatakse alati, kui objektidega seotud andmeid tuleb saata ühest rakendusest teise. Serialiseerimist kasutatakse rakenduse andmete faili eksportimiseks. Seejärel kasutab sihtkoharakendus deserialiseerimist andmete edasiseks kasutamiseks rakendusest andmete väljavõtmiseks.

Serialiseerimine on mõiste, kus C # klassi objektid kirjutatakse või failidesse jadastatakse. Oletame, et teil oli C # klass nimega Õpetus. Klassil on 2 ID ja Tutorials nime omadust.

Serialiseerimist saab kasutada klassi Tutorial andmete omaduste otse faili kirjutamiseks. Deserialiseerimist kasutatakse failist andmete lugemiseks ja objekti Tutorial uuesti koostamiseks.

Vaatame näidet selle saavutamiseks.

Meie näites teeme koodis allpool kõrgetasemelised toimingud

  1. Looge klass nimega Õpetus, millel on 2 omadust, nimelt ID ja nimi
  2. Seejärel loome klassist objekti ja määrame atribuudile ID väärtuse "1" ja atribuudile nimi väärtuse ".Net".
  3. Seejärel kasutame jadamist ülaltoodud objekti järjestamiseks faili nimega Example.txt
  4. Lõpuks kasutame deserialiseerimist objekti deserialiseerimiseks failist ja väärtuste kuvamiseks konsoolis.

Sisestage konsoolirakenduse faili program.cs allpool olev kood.

Samm 1) Esimene samm on lisada klass, mida kasutatakse jadastamiseks

Koodi selgitus: -

  1. Klassil, mis tuleb jadastada, peab olema atribuut [Serializable]. See on märksõna C # -s. Seejärel lisatakse see märksõna klassi Õpetus. Kui te seda atribuuti ei maini, kuvatakse klassi seerialiseerimisel viga.
  2. Järgmine on seerialiseeritava klassi määratlus. Siin määratleme klassi nimega "Õpetus" ja pakume 2 omadust, millest üks on "ID" ja teine ​​on "nimi".

Samm 2) Selles etapis loome kõigepealt klassi Õpetusobjekt ja serialiseerime selle faili nimega Example.txt

Koodi selgitus: -

  1. Kõigepealt loome klassi Õpetusobjekt. Seejärel määrame ID-le väärtuse "1" ja atribuudile ".net".
  2. Seejärel kasutame vormindamisklassi, mida kasutatakse objekti järjestamiseks või teisendamiseks binaarsesse vormingusse. Jaotises olevad andmed failis tehakse binaarses vormingus. Järgmisena loome failivoo objekti. Failivoo objekti kasutatakse faili Example.txt avamiseks kirjutamise eesmärgil. Märksõnu FileMode.Create ja FileMode.Write kasutatakse konkreetselt selle mainimiseks, et fail tuleks kirjutamise eesmärgil avada.
  3. Lõpuks kasutame binaarandmete faili ülekandmiseks meetodit Serialize. Seejärel sulgeme voo, kuna kirjutamistoiming on lõppenud.

Samm 3) Lõpuks, et tagada andmete olemasolu failis, kasutame failist objekti deserialiseerimiseks deserialiseerimist.

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

Koodi selgitus: -

  1. Loome objekti "stream" faili Näide.txt avamiseks ainult lugemisrežiimis.
  2. Seejärel kasutame faili Example.txt salvestatud objekti deserialiseerimiseks vormindamisklassi. Tagastatud objektiks määratakse objekt objnew.
  3. Lõpuks kuvame konsoolile objekti "objnew" omadused, kasutades omadusi "ID" ja "nimi".

Kui ülaltoodud kood on määratud ja projekti käivitatakse Visual Studio abil, saate allpool oleva väljundi.

Väljund: -

Ülaltoodud väljundist näete, et faili väärtused deserialiseeriti õigesti ja kuvati konsoolis.

Kokkuvõte

Serialiseerimist kasutatakse klassi objektide failidesse kirjutamiseks.

De-serialiseerimist kasutatakse objektide failist taastamiseks.