C # Serializavimas & Dezerializavimas pavyzdžiu

Anonim

Serializavimo ir deserializacijos sąvoka naudojama, kai duomenis, susijusius su objektais, reikia siųsti iš vienos programos į kitą. Serializavimas naudojamas eksportuoti programos duomenis į failą. Tada paskirties programa naudoja deserializaciją, kad gautų duomenis iš programos tolesniam naudojimui.

Serializacija yra sąvoka, kai C # klasės objektai yra užrašomi arba nuosekliai siejami su failais. Tarkime, kad turėjote C # klasę pavadinimu „Pamoka“. Klasėje yra 2 ID ir Pamokų pavadinimo ypatybės.

Serializavimas gali būti naudojamas tiesiogiai įrašant „Tutorial“ klasės duomenų ypatybes į failą. Dezerializacija naudojama norint nuskaityti duomenis iš failo ir dar kartą sukurti „Tutorial“ objektą.

Pažvelkime į pavyzdį, kaip mes galime tai pasiekti.

Mūsų pavyzdyje mes atliksime žemiau nurodytus aukšto lygio veiksmus kode

  1. Sukurkite klasę, vadinamą „Pamoka“, kuri turi 2 ypatybes, būtent ID ir vardą
  2. Tada mes sukursime objektą iš klasės ir priskirsime reikšmę „1“ nuosavybei „ID“ ir „.Net“ reikšmę vardo savybei.
  3. Tada mes naudosime serializavimą, kad pirmiau nurodytas objektas būtų nuoseklus faile, pavadintame pavyzdžiu.txt
  4. Galiausiai naudosime deserializaciją norėdami deserializuoti objektą iš failo ir rodyti reikšmes konsolėje.

Įveskite žemiau esantį kodą į konsolės programos failą program.cs.

1 žingsnis . Pirmasis žingsnis yra pridėti klasę, kuri bus naudojama serializavimui

Kodo paaiškinimas: -

  1. Klasė, kurią reikia serijuoti, turi turėti [Serializable] atributą. Tai raktinis žodis C #. Tada šis raktinis žodis pridedamas prie pamokos. Nepaminėdami šio atributo, bandydami susisteminti klasę gausite klaidą.
  2. Kitas yra serijos apibrėžimas. Čia mes apibrėžiame klasę, vadinamą „Pamoka“, ir pateikiame 2 ypatybes, viena yra „ID“, o kita - „Name“.

2 žingsnis) Šiame žingsnyje pirmiausia sukursime „Tutorial“ klasės objektą ir suporuosime jį į failą pavadinimu „Example.txt“

Kodo paaiškinimas: -

  1. Pirmiausia sukuriame „Tutorial“ klasės objektą. Tada priskiriame reikšmę „1“ ID ir „.net“ - vardo savybei.
  2. Tada mes naudojame formatavimo klasę, kuri naudojama objektui sudaryti ar konvertuoti į dvejetainį formatą. Duomenys, esantys faile, sudaromi nuosekliai, atliekami dvejetainiu formatu. Tada sukursime failų srauto objektą. Failų srauto objektas naudojamas failui „Example.txt“ atidaryti rašymo tikslais. Raktiniai žodžiai „FileMode.Create“ ir „FileMode.Write“ naudojami konkrečiai paminėti, kad failas turėtų būti atidarytas rašymo tikslais.
  3. Galiausiai, naudodami „Serialize“ metodą, binariniams duomenims perkelti į failą. Tada mes uždarome srautą, nes rašymo operacija baigta.

3 žingsnis. Galiausiai norėdami įsitikinti, kad faile yra duomenų, mes naudojame deserializaciją, kad deserializuotume objektą iš failo.

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

Kodo paaiškinimas: -

  1. Mes sukuriame objektą „srautas“, kad atidarytume failą „Example.txt“ tik skaitymo režimu.
  2. Tada mes naudojame formatavimo klasę, kuri naudojama deserializuoti objektą, kuris saugomas faile „Example.txt“. Grąžintas objektas nustatomas kaip objnew.
  3. Galiausiai mes parodome objekto „objnew“ ypatybes konsolei naudodami savybes „ID“ ir „vardas“.

Kai nustatytas pirmiau nurodytas kodas ir projektas vykdomas naudojant „Visual Studio“, gausite žemiau pateiktą išvestį.

Išvestis: -

Iš pirmiau pateiktos išvesties galite pamatyti, kad failo reikšmės buvo tinkamai deserializuotos ir rodomos konsolėje.

Santrauka

Serializacija naudojama klasės objektams rašyti į failus.

„De-Serialization“ naudojama norint atkurti objektus iš failo.