Вопрос о удаленном взаимодействии и сериализации .NET - PullRequest
1 голос
/ 26 сентября 2011

У меня есть интерфейс (пусть он называется OuterInt) и класс (OuterClass), который его реализовал.Интерфейс OuterInt состоит из других интерфейсов (InnerInt1, InnerInt2 и т. Д.). И есть некоторые классы (InnerClass1, InnerClass2 и т. Д.), Которые реализуют эти внутренние интерфейсы.OuterClass предоставляется серверной частью приложения путем удаленного взаимодействия .NET (RemotingServices.Marshal (_OuterClass, "myOuterInt");) Мой вопрос заключается в том, будут ли внутренние классы сериализованы в процессе удаленного взаимодействия или нет, и если клиентская часть приложения знает оэти классы (например, чтобы иметь ссылку на сборку с этими классами)?Я надеюсь, что я подробно описал свой вопрос, если нет - задайте его в комментариях.

1 Ответ

2 голосов
/ 26 сентября 2011

Удаленное взаимодействие (что, как отмечает Одед, в значительной степени устарело) создает удаленный хук к объекту ; не API (интерфейс). Таким образом, на самом деле будет необходимо иметь одинаковые dll (содержащие удаленный конкретный тип) на обоих концах. Будет ли он сериализован против прокси, зависит от того, наследуется ли он от MarshalByRefObject. Но обычно: если он находится в графе объектов на одном конце, то его нужно создать на другом.

Если возможно, предпочтите виртуально любую другую реализацию удаленному взаимодействию, IMO.

...