Поделиться через


Маршалинг по значению

Объекты являются допустимыми только в том домене приложения, в котором они были созданы. Любая попытка передать объект как параметр или вернуть его как результат будет завершаться ошибкой, пока объект наследуется от MarshalByRefObject или отмечен как Serializable. Если объект отмечен как Serializable, он будет автоматически сериализован, передан из одного домена приложений в другой, а затем десериализован с целью создания точной копии объекта во втором домене приложения. Этот процесс обычно называют маршалинг по значению.

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

См. также

Другие ресурсы

Концепции сериализации
Remote Objects
XML- и SOAP-сериализация