Begreppet Serialisering och deserialisering används när data som rör objekt måste skickas från en applikation till en annan. Serialisering används för att exportera applikationsdata till en fil. Destinationsapplikationen använder sedan deserialisering för att extrahera data från applikationen för vidare användning.
Serialisering är ett koncept där C #-klassobjekt skrivs eller serieras till filer. Låt oss säga att du hade en C #-klass som heter Tutorial. Och klassen har två egenskaper för ID och Tutorials namn.
Serialisering kan användas för att direkt skriva dataegenskaperna i klassen Tutorial till en fil. Deserialization används för att läsa data från filen och konstruera självstudieobjektet igen.
Låt oss titta på ett exempel på hur vi kan uppnå detta.
I vårt exempel ska vi utföra nedanstående högnivåsteg i koden
- Skapa en klass som heter Tutorial som har två egenskaper, nämligen ID och namn
- Vi skapar sedan ett objekt från klassen och tilldelar ID-egenskapen ett värde "1" och värdet ".Net" till namnegenskapen.
- Vi kommer sedan att använda serialisering för att serieera ovanstående objekt till en fil som heter Example.txt
- Slutligen kommer vi att använda deserialisering för att deserialisera objektet från filen och visa värdena i konsolen.
Ange nedanstående kod i program.cs-filen i konsolprogrammet.
Steg 1) Det första steget är att lägga till klassen som kommer att användas för serialisering
Kodförklaring: -
- Klassen som måste serienummeras måste ha attributet [Serializable]. Detta är ett nyckelord i C #. Detta nyckelord bifogas sedan till självstudiekursen. Om du inte nämner detta attribut får du ett felmeddelande när du försöker att klassificera klassen.
- Nästa är definitionen av klassen som kommer att serienummeras. Här definierar vi en klass som heter "Tutorial" och tillhandahåller två egenskaper, en är "ID" och den andra är "Namn".
Steg 2) I det här steget skapar vi först objektet i klassen Tutorial och serierar det till filen som heter Example.txt
Kodförklaring: -
- Först skapar vi ett objekt i klassen Tutorial. Vi tilldelar sedan värdet "1" till ID och ".net" till namnegenskapen.
- Vi använder sedan formateringsklassen som används för att serialisera eller konvertera objektet till ett binärt format. Uppgifterna i filen i serieisering görs i binärt format. Därefter skapar vi ett filströmobjekt. Filströmobjektet används för att öppna filen Exempel.txt för skrivändamål. Nyckelorden FileMode.Create och FileMode.Write används för att specifikt nämna att filen ska öppnas för skrivändamål.
- Slutligen använder vi Serialize-metoden för att överföra binär data till filen. Vi stänger sedan strömmen eftersom skrivningen är klar.
Steg 3) Slutligen för att säkerställa att data finns i filen använder vi deserialisering för att deserialisera objektet från 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();}}}
Kodförklaring: -
- Vi skapar objektet "stream" för att öppna filen Exempel.txt i läsläge.
- Vi använder sedan formatter-klassen som används för att deserialisera objektet, som lagras i filen Exempel.txt. Det returnerade objektet är inställt på objektet objnew.
- Slutligen visar vi egenskaperna för objektet "objnew" till konsolen med hjälp av egenskaperna "ID" och "name".
När ovanstående kod är inställd och projektet körs med Visual Studio får du utdata nedan.
Produktion:-
Du kan se från ovanstående utdata att värdena från filen deserialiserades ordentligt och visas i konsolen.
Sammanfattning
Serialisering används för att skriva klassobjekt till filer.
Avserialisering används för att återställa objekten från filen.