Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Сериализация и десериализация в C# с примером

Сериализация и десериализация в C#

Концепция сериализации и десериализации используется всякий раз, когда данные, относящиеся к объектам, должны быть отправлены из одного приложения в другое. Сериализация используется для экспорта данных приложения в файл. Затем целевое приложение использует десериализацию для извлечения данных из приложения для дальнейшего использования.

Сериализация — это концепция, в которой объекты класса C# записываются или сериализуются в файлы. Допустим, у вас есть класс C# под названием Tutorial. И у класса есть 2 свойства идентификатора и имени учебника.

Сериализацию можно использовать для прямой записи свойств данных класса Tutorial в файл. Десериализация используется для чтения данных из файла и повторного создания объекта Tutorial.

Как сериализовать объект в C#

Давайте рассмотрим пример того, как мы можем этого добиться.

В нашем примере мы собираемся выполнить следующие шаги высокого уровня в коде

  1. Создайте класс Tutorial с двумя свойствами:идентификатором и именем.
  2. Затем мы создадим объект из класса и назначим значение «1» свойству ID и значение «.Net» свойству имени.
  3. Затем мы будем использовать сериализацию для сериализации указанного выше объекта в файл с именем Example.txt
  4. Наконец, мы будем использовать десериализацию для десериализации объекта из файла и отображения значений в консоли.

Введите приведенный ниже код в файл program.cs консольного приложения.

Шаг 1) Добавьте класс.
Первый шаг — добавьте класс, который будет использоваться для сериализации

Пояснение кода:-

  1. Класс, который необходимо сериализовать, должен иметь атрибут [Serializable]. Это ключевое слово в C#. Затем это ключевое слово присоединяется к классу Tutorial. Если вы не укажете этот атрибут, вы получите сообщение об ошибке при попытке сериализовать класс.
  2. Далее следует определение класса, который будет сериализован. Здесь мы определяем класс под названием «Учебник» и предоставляем 2 свойства:одно «Идентификатор», а другое — «Имя».

Шаг 2) Создайте объект.
На этом шаге мы сначала создадим объект класса Tutorial и сериализуем его в файл с именем Example.txt

Пояснение кода:-

  1. Сначала мы создаем объект класса Tutorial. Затем мы присваиваем значение «1» идентификатору и «.net» свойству имени.
  2. Затем мы используем класс форматирования, который используется для сериализации или преобразования объекта в двоичный формат. Данные в файле при сериализации выполняются в двоичном формате. Далее мы создаем объект файлового потока. Объект файлового потока используется для открытия файла Example.txt для записи. Ключевые слова FileMode.Create и FileMode.Write используются для особого указания на то, что файл следует открывать для записи.
  3. Наконец, мы используем метод Serialize для передачи двоичных данных в файл. Затем мы закрываем поток, так как операция записи завершена.

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

Пояснение кода:-

  1. Мы создаем объект «поток», чтобы открыть файл Example.txt в режиме только для чтения.
  2. Затем мы используем класс форматирования, который используется для десериализации объекта, хранящегося в файле Example.txt. Возвращаемый объект устанавливается в объект objnew.
  3. Наконец, мы отображаем свойства объекта «objnew» в консоли, используя свойства «ID» и «имя».

Когда приведенный выше код установлен и проект запускается с помощью Visual Studio, вы получите приведенный ниже вывод.

Вывод:-

Из приведенного выше вывода видно, что значения из файла были правильно десериализованы и отображены в консоли.

Обзор

Сериализация используется для записи объектов класса в файлы.

Десериализация используется для восстановления объектов из файла.


Язык C

  1. Класс и объект С#
  2. Абстрактный класс и метод С#
  3. Частичный класс C# и частичный метод
  4. Запечатанный класс и метод С#
  5. Класс файла Java
  6. Операторы в C++ с примером:что такое, типы и программы
  7. Разница между структурой и классом:объяснение на примере C++
  8. Учебное пособие по абстрактному классу C # с примером:что такое абстракция?
  9. Java BufferedReader:как читать файл в Java с примером
  10. type() и isinstance() в Python с примерами