A sorozatosítás és a deszerializáció fogalmát akkor alkalmazzák, amikor az objektumokra vonatkozó adatokat egyik alkalmazásból a másikba kell küldeni. A sorosítást az alkalmazás adatainak fájlba exportálásához használják. A célalkalmazás ezután a dezerializálást használja az adatok alkalmazásból történő további kinyerésére.
A szerializálás egy olyan fogalom, amelyben a C # osztályú objektumokat fájlokba írják vagy sorosítják. Tegyük fel, hogy volt egy Tutorial nevű C # osztályod. És az osztálynak két tulajdonsága van az azonosítónak és az oktatóanyagok nevének.
A szerializálás segítségével a Tutorial osztály adattulajdonságait közvetlenül fájlba lehet írni. A deserializálást használják az adatok kiolvasására a fájlból, és a Tutorial objektum újbóli létrehozására.
Nézzünk meg egy példát arra, hogyan érhetjük el ezt.
Példánkban az alábbi magas szintű lépéseket fogjuk végrehajtani a kódban
- Hozzon létre egy Tutorial nevű osztályt, amely 2 tulajdonsággal rendelkezik, nevezetesen azonosítóval és névvel
- Ezután létrehozunk egy objektumot az osztályból, és "1" értéket rendelünk az ID tulajdonsághoz, és ".Net" értéket a név tulajdonsághoz.
- Ezután a sorosítást használjuk a fenti objektum sorosításához az Example.txt nevű fájlba
- Végül deserializációval deserializáljuk az objektumot a fájlból, és megjelenítjük az értékeket a Console-ban.
Írja be az alábbi kódot a konzolalkalmazás program.cs fájljába.
1. lépés: Az első lépés a sorosításhoz használt osztály hozzáadása
Kód Magyarázat: -
- A sorosítandó osztálynak rendelkeznie kell a [Serializable] attribútummal. Ez a C # kulcsszó. Ez a kulcsszó az Oktatóórához kapcsolódik. Ha nem említi ezt az attribútumot, akkor hibaüzenetet kap, amikor megpróbálja sorosítani az osztályt.
- A következő az osztály meghatározása, amelyet sorosítani fogunk. Itt meghatározzuk a "Tutorial" nevű osztályt, és 2 tulajdonságot adunk meg, az egyik az "ID", a másik a "Name".
2. lépés) Ebben a lépésben először létrehozzuk a Tutorial osztály objektumát, és sorosítjuk az Example.txt nevű fájlba
Kód Magyarázat: -
- Először létrehozunk egy tárgyat a Tutorial osztályból. Ezután az "1" értéket hozzárendeljük az azonosítóhoz, a ".net" értéket pedig a név tulajdonsághoz.
- Ezután a formázó osztályt használjuk, amelyet az objektum sorosítására vagy bináris formátumra konvertálására használunk. A fájlok sorosított adatai bináris formátumban történnek. Ezután létrehozunk egy fájlfolyam objektumot. A fájlfolyam objektummal megnyitjuk az Example.txt fájlt írási célokra. A FileMode.Create és a FileMode.Write kulcsszavak kifejezetten megemlítik, hogy a fájlt írás céljából kell megnyitni.
- Végül a Serialize módszerrel továbbítjuk a bináris adatokat a fájlba. Ezután bezárjuk az adatfolyamot, mivel az írási művelet befejeződött.
3. lépés: Végül annak biztosítása érdekében, hogy az adatok jelen legyenek a fájlban, deserializálást használunk az objektum deserializálására a fájlból.
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();}}}
Kód Magyarázat: -
- Létrehozjuk a "stream" objektumot, hogy csak példa módban nyissuk meg az Example.txt fájlt.
- Ezután a formázó osztályt használjuk az objektum deszerializálására, amelyet az Example.txt fájl tárol. A visszaküldött objektum az objektum objektumra van állítva.
- Végül az "objnew" objektum tulajdonságait jelenítjük meg a konzolon az "ID" és a "name" tulajdonságok használatával.
Amikor a fenti kód be van állítva, és a projekt a Visual Studio segítségével fut, akkor az alábbi kimenetet kapja.
Kimenet:-
A fenti kimenetből láthatja, hogy a fájl értékeit megfelelően deserializálták és megjelenítették a konzolon.
Összegzés
A sorozatosítással osztályobjektumokat lehet fájlokba írni.
A szériamentesítést használják az objektumok fájlból történő helyreállítására.