Serialiseerimine ja deserialiseerimine C#-s näitega
⚡ Nutikas kokkuvõte
C#-s serialiseerimine teisendab objekti baitide vooguks, et seda saaks faili salvestada või rakenduste vahel saata; deserialiseerimine loob objekti uuesti. Siin õpid näidete abil objekte serialiseerima ja deserialiseerima.

Serialiseerimine ja deserialiseerimine C# keeles
Serialiseerimise ja deserialiseerimise mõisteid kasutatakse alati, kui objektidega seotud andmeid tuleb ühest rakendusest teise saata. Serialiseerimist kasutatakse rakenduse andmete eksportimiseks faili. Seejärel kasutab sihtrakendus deserialiseerimist andmete eksportimiseks.tracrakendusest pärit andmed edasiseks kasutamiseks.
Serialiseerimine on kontseptsioon, milles C# klassi objektid kirjutatakse või jadatakse failidesse. Oletame, et teil oli C# klass nimega Tutorial. Ja klassil on 2 atribuuti ID ja Tutorials nimi.
Serialiseerimist saab kasutada klassi Tutorial andmete atribuutide otse faili kirjutamiseks. Deserialiseerimist kasutatakse andmete lugemiseks failist ja Tutorial objekti uuesti koostamiseks.
Serialiseerimise tüübid C#-s
C# toetab mitmeid serialiseerimisvorminguid ja saate valida ühe vastavalt sellele, kus andmeid kasutatakse. Peamised tüübid on loetletud allpool.
- Binaarne serialiseerimine teisendab objekti kompaktseks binaarvooguks. See on kiire, kuid mitte inimloetav ja seotud .NET-iga.
- XML-serialiseerimine kasutab XmlSerializer klassi objekti avalike omaduste kirjutamiseks loetavasse XML-faili.
- JSON-i serialiseerimine kasutab kerge JSON-i loomiseks System.Text.Jsoni või Newtonsoft.Jsoni, mis on veebiliideste kõige levinum vorming.
- SOAP-serialiseerimine vormindab andmed vanemate veebiteenuste jaoks SOAP-sõnumitena.
Objekti serialiseerimine C#-s
Vaatame näidet selle kohta, kuidas seda saavutada.
Meie näites teeme koodis alltoodud kõrgetasemelised toimingud
- Looge klass nimega Tutorial, millel on 2 atribuuti, nimelt ID ja nimi
- Seejärel loome klassist objekti ja määrame ID atribuudile väärtuse "1" ja nime atribuudile väärtuse ".Net".
- Seejärel kasutame serialiseerimist ülaltoodud objekti serialiseerimiseks failiks Näide.txt
- Lõpuks kasutame deserialiseerimist objekti failist deserialiseerimiseks ja väärtuste kuvamiseks konsoolis.
Sisestage allolev kood konsoolirakenduse faili program.cs.
Step 1) Lisage klass.
Esimene samm on lisada klass, mida kasutatakse serialiseerimiseks
Code Selgitus:-
- Serialiseeritaval klassil peab olema atribuut [Serialisable]. See on märksõna C#-s. See märksõna lisatakse seejärel klassile Tutorial. Kui te seda atribuuti ei maini, kuvatakse klassi serialiseerimisel veateade.
- Järgmine on serialiseeritava klassi määratlus. Siin määratleme klassi nimega "Tutorial" ja pakume 2 atribuuti, millest üks on "ID" ja teine on "nimi".
Step 2) Loo objekt.
Selles etapis loome esmalt klassi Tutorial objekti ja serialiseerime selle failiks Näide.txt
Code Selgitus:-
- Esiteks loome klassi Tutorial objekti. Seejärel määrame ID-le väärtuse "1" ja nime atribuudile ".net".
- Seejärel kasutame vormindusklassi, mida kasutatakse objekti binaarvormingusse serialiseerimiseks või teisendamiseks. Serialiseeritavas failis olevad andmed tehakse binaarvormingus. Järgmisena loome failivoo objekti. Failivoo objekti kasutatakse faili Näide.txt avamiseks kirjutamise eesmärgil. Märksõnu FileMode.Create ja FileMode.Write kasutatakse selleks, et mainida, et fail tuleks kirjutamiseks avada.
- Lõpuks kasutame binaarandmete faili edastamiseks Serialize meetodit. Seejärel sulgeme voo, alates kirjutamisest töö on täielik.
Step 3) Kasutage deserialiseerimist.
Lõpuks, et tagada andmete olemasolu failis, kasutame objekti failist 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(); } } }
Code Selgitus:-
- Loome objekti "oja” faili Näide.txt avamiseks lugemisrežiimis.
- Seejärel kasutame vormindusklassi, mida kasutatakse objekti deserialiseerimiseks, mis on salvestatud faili Example.txt. Tagastatud objektiks määratakse objekt objnew.
- Lõpuks kuvame konsooli objekti "objnew" atribuudid, kasutades atribuute "ID" ja "name".
Kui ülaltoodud kood on määratud ja projekti käitatakse kasutades Visual Studio, saate alloleva väljundi.
Väljund:-
Ülaltoodud väljundist näete, et faili väärtused deserialiseeriti korralikult ja kuvati konsoolis.
JSON-i serialiseerimine C#-s
JSON on tänapäevaste rakenduste ja veebiliideste (API-de) jaoks kõige laialdasemalt kasutatav vorming. Sisseehitatud System.Text.Json namespace serialiseerib ja deserialiseerib objektid ühe meetodikõnega, nagu allpool näidatud.
using System; using System.Text.Json; namespace DemoApplication { class Tutorial { public int ID { get; set; } public string Name { get; set; } } class Program { static void Main(string[] args) { Tutorial obj = new Tutorial { ID = 1, Name = ".Net" }; string json = JsonSerializer.Serialize(obj); Console.WriteLine(json); Tutorial objnew = (Tutorial)JsonSerializer.Deserialize(json, typeof(Tutorial)); Console.WriteLine(objnew.Name); Console.ReadKey(); } } }
Väljund:
{"ID":1,"Name":".Net"}
.Net




