Страницы

Поиск по вопросам

среда, 3 октября 2018 г.

Что такое маршалинг?

Как бы вы объяснили "на пальцах", или с примером кода что это такое? Вот сериализация - это ясно, это копирование структур из-в в простой форме, например в форме байтового потока. И вот утверждается, что в этом случае сериализация по своей сути является маршалингом так как реализует "pass-by-value semantics". Что думаете?


Ответ

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

Комментариев нет:

Отправить комментарий