Каково значение понятия сериализации на языках программирования?

Каково значение понятия сериализации на языках программирования?

когда мы используем Serializable атрибут выше класса, каково значение?

42
задан masoud ramezani 15 June 2010 в 05:12
поделиться

3 ответа

Допустим, у вас есть два приложения, которые работают на двух разных физических машинах. Оба приложения должны обмениваться данными, которые обычно используются обоими приложениями. Эти приложения взаимодействуют друг с другом для обмена данными с некоторыми носителями. Эти носители могут быть файловой системой, TCP- или UDP-соединениями или любым другим подходящим сетевым протоколом или могут быть прямым обменом данными в памяти. Любой из этих носителей будет понимать только данные, описанные в виде серии битов. Поэтому, когда одному приложению необходимо отправить значение 10 другому, значение 10 будет отправлено как его двоичное представление 1010, и вы также передадите некоторую информацию, описывающую 1010. Эта метаинформация также будет серией битов, которую может использовать другое приложение. легко понять. Хотя это было легко.

Возьмем другой пример, в котором эти два приложения должны обмениваться более сложным, не примитивным типом данных. Допустим, им нужно обмениваться объектами типа Book, где Book - это настраиваемый класс в вашем приложении, и оба приложения имеют определение типа Book.

public class Book
{
    Book() { }

    public long BookId { get;set; }
    public string Author { get;set; }
    public string Title { get;set; }
}

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

С помощью сериализации вы можете определить, как объект может быть преобразован в его двоичное представление. Принимающее приложение будет выполнять обратный процесс, то есть десериализацию, которая создает объект Book из его двоичного представления.

83
ответ дан 26 November 2019 в 23:25
поделиться

Сериализация - это процесс преобразования объекта в поток байтов. Десериализация - это процесс, противоположный создание объекта из потока байтов.

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

подробнее об этом: http://www.allinterview.com/showanswers/20627.html

9
ответ дан 26 November 2019 в 23:25
поделиться

Нет лучшего объяснения, чем то, которое дано в википедии.

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

http://en.wikipedia.org/wiki/Serialization

Кроме того, атрибут Serializable не может быть использован в методах. На это указывает использование атрибута

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Delegate, Inherited = false)]
21
ответ дан 26 November 2019 в 23:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: