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