Концепт сериализације и десериализације користи се кад год се подаци који се односе на објекте морају слати из једне апликације у другу. Серијализација се користи за извоз података апликације у датотеку. Одредишна апликација затим користи десериализацију за издвајање података из апликације за даљу употребу.
Серијализација је концепт у којем се објекти класе Ц # записују или сериализују у датотеке. Рецимо да сте имали Ц # класу која се зове Туториал. А класа има 2 својства ИД и име Туториалс.
Серијализовање се може користити за директно уписивање својстава података класе Водич у датотеку. Десеријализација се користи за читање података из датотеке и поновно конструисање објекта Туториал.
Погледајмо пример како то можемо постићи.
У нашем примеру ћемо извршити доленаведене кораке на високом нивоу у коду
- Направите класу под називом Туториал која има 2 својства, наиме ИД и Наме
- Затим ћемо створити објекат из класе и својству ИД доделити вредност „1“, а својству имена вредност „.Нет“.
- Затим ћемо сериализацијом користити за сериализацију горњег објекта у датотеку која се зове Екампле.ткт
- Коначно, користићемо десериализацију за десериализацију објекта из датотеке и приказивање вредности у конзоли.
Унесите доњи код у датотеку програм.цс апликације конзоле.
Корак 1) Први корак је додавање класе која ће се користити за сериализацију
Објашњење кода: -
- Класа која треба да се серилизује мора да има атрибут [Сериализабле]. Ово је кључна реч у Ц #. Ова кључна реч је затим прикључена на класу Водич. Ако не споменете овај атрибут, добићете грешку када покушате да сериализујете класу.
- Следећа је дефиниција класе која ће бити сериализована. Овде дефинишемо класу која се зове „Водич“ и пружамо 2 својства, једно је „ИД“, а друго „Име“.
Корак 2) У овом кораку прво ћемо створити објект класе Туториал и сериализовати га у датотеку која се зове Екампле.ткт
Објашњење кода: -
- Прво креирамо објекат класе Туториал. Затим додељујемо вредност „1“ ИД-у, а „.нет“ својству имена.
- Затим користимо класу обликовача која се користи за сериализацију или претварање објекта у бинарни формат. Подаци у датотеци у сериализацији се раде у бинарном формату. Даље креирамо објекат тока датотека. Објекат тока датотека користи се за отварање датотеке Екампле.ткт у сврхе писања. Кључне речи ФилеМоде.Цреате и ФилеМоде.Врите користе се да се посебно напомене да датотеку треба отворити ради писања.
- На крају, користимо методу Сериализе за пренос бинарних података у датотеку. Затим затворимо ток, пошто је операција писања завршена.
Корак 3) Коначно да бисмо осигурали да су подаци присутни у датотеци, користимо десериализацију да бисмо десеријализовали објекат из датотеке.
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();}}}
Објашњење кода: -
- Креирамо објекат „стреам“ да бисмо отворили датотеку Екампле.ткт у режиму само за читање.
- Затим користимо класу форматирања која се користи за десериализацију објекта који је ускладиштен у датотеци Екампле.ткт. Враћени објекат је постављен на објнев.
- На крају, приказујемо својства објекта „објнев“ на конзоли користећи својства „ИД“ и „наме“.
Када се постави горњи код и пројекат покрене помоћу Висуал Студија, добићете доњи излаз.
Излаз: -
Из горњег резултата можете видети да су вредности из датотеке десеријализоване правилно и приказане у конзоли.
Резиме
Серијализација се користи за писање објеката класе у датотеке.
Де-сериализација се користи за опоравак објеката из датотеке.