C # Serialisointi & Deserialisaatio esimerkillä

Anonim

Sarjallisuuden ja deserialisoinnin käsitettä käytetään aina, kun esineisiin liittyviä tietoja on lähetettävä sovelluksesta toiseen. Sarjausta käytetään sovellustietojen viemiseen tiedostoon. Kohdesovellus käyttää sitten deserialisointia poimimaan tiedot sovelluksesta jatkokäyttöä varten.

Sarjallisuus on käsite, jossa C # -luokan objektit kirjoitetaan tai sarjoitetaan tiedostoihin. Oletetaan, että sinulla oli C # -luokka nimeltä Tutorial. Ja luokassa on 2 ominaisuutta ID ja Tutorials nimi.

Sarjallisuutta voidaan käyttää opetusohjelman luokan ominaisuuksien kirjoittamiseen suoraan tiedostoon. Deserialisaatiota käytetään tietojen lukemiseen tiedostosta ja opetusobjektin rakentamiseen uudelleen.

Katsotaanpa esimerkkiä siitä, miten voimme saavuttaa tämän.

Esimerkissämme aiomme suorittaa alla olevat korkean tason vaiheet koodissa

  1. Luo luokka nimeltä Tutorial, jolla on 2 ominaisuutta, nimittäin tunnus ja nimi
  2. Sitten luomme objektin luokasta ja määritämme arvon "1" ID-ominaisuudelle ja arvon ".Net" nimen ominaisuudelle.
  3. Sitten käytämme sarjallisuutta yllä olevan objektin sarjallisuuteen tiedostoon, jonka nimi on Esimerkki.txt
  4. Lopuksi käytämme deserialisointia objektin deserialisoimiseksi tiedostosta ja arvojen näyttämiseksi konsolissa.

Kirjoita alla oleva koodi konsolisovelluksen program.cs-tiedostoon.

Vaihe 1) Ensimmäinen askel on lisätä sarja, jota käytetään sarjoitukseen

Koodin selitys: -

  1. Sarjalla, joka on sarjoitettava, on oltava [Serializable] -attribuutti. Tämä on avainsana C #: ssä. Tämä avainsana liitetään sitten opetusohjelmaan. Jos et mainitse tätä määritettä, saat virheilmoituksen, kun yrität sarjoittaa luokkaa.
  2. Seuraava on sarjaliikenteen luokan määritelmä. Tässä määritellään luokka nimeltä "Tutorial" ja tarjotaan kaksi ominaisuutta, joista toinen on "ID" ja toinen on "Name".

Vaihe 2) Tässä vaiheessa luomme ensin Tutorial-luokan objektin ja sarjamme sen tiedostoon nimeltä Example.txt

Koodin selitys: -

  1. Ensinnäkin luomme Tutorial-luokan objektin. Määritämme sitten arvon "1" tunnukselle ja ".net" nimen ominaisuudelle.
  2. Sitten käytämme muotoiluluokkaa, jota käytetään objektin sarjallisuuteen tai muuntamiseen binaarimuodoksi. Sarjassa olevan tiedoston tiedot tehdään binaarimuodossa. Seuraavaksi luomme tiedostovirtaobjektin. Tiedostovirtaobjektia käytetään avaamaan tiedosto Example.txt kirjoittamista varten. Avainsanoja FileMode.Create ja FileMode.Write käytetään nimenomaan mainitsemaan, että tiedosto on avattava kirjoittamista varten.
  3. Lopuksi käytämme Serialize-menetelmää siirtämään binaaritiedot tiedostoon. Sitten suljetaan virta, koska kirjoitusoperaatio on valmis.

Vaihe 3) Lopuksi varmistaaksemme, että tiedot ovat tiedostossa, käytämme deserialisaatiota objektin deserialisoimiseksi tiedostosta.

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

Koodin selitys: -

  1. Luomme objektin "stream" avataksesi esimerkki.txt-tiedoston vain luku -tilassa.
  2. Sitten käytämme muotoiluluokkaa, jota käytetään deserialisoimaan esimerkki.txt-tiedostoon tallennettu objekti. Palautettu objekti on asetettu objektiksi objnew.
  3. Lopuksi näytämme objektin "objnew" ominaisuudet konsolille käyttämällä "ID" - ja "name" -ominaisuuksia.

Kun yllä oleva koodi on asetettu ja projekti suoritetaan Visual Studion avulla, saat alla olevan tuloksen.

Lähtö: -

Yllä olevasta lähdöstä näet, että tiedoston arvot deserialisoitiin oikein ja näkyivät konsolissa.

Yhteenveto

Sarjausta käytetään luokan objektien kirjoittamiseen tiedostoihin.

Sarjojen poistoa käytetään objektien palauttamiseen tiedostosta.