Страницы

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

понедельник, 25 ноября 2019 г.

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


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


Ответы

Ответ 1



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

Ответ 2



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

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

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