Могу ли я использовать интерфейс для CAO в Remoting? - PullRequest
2 голосов
/ 22 июня 2009

В CAO нет URI, поэтому указанный тип должен быть зарегистрирован на стороне сервера. Но если мой клиент и сервер взаимодействуют через один и тот же интерфейс (интерфейс реализует удаленный объект), то как я могу вызвать удаленный объект CAO со стороны клиента. Это дает мне исключение, если я пытаюсь вызвать Acitvator.CreateInstance, используя тип интерфейса. например,

RemoteObject.IRemoteObject obj = (RemoteObject.IRemoteObject )Activator.CreateInstance(typeof(RemoteObject.IRemoteObject), null, url);

код выше выдает исключение.

Ответы [ 2 ]

0 голосов
/ 03 октября 2009

Возможно, вы захотите использовать метод, описанный в этой статье MSDN Реализация брокера с .NET Remoting с использованием активируемых клиентом объектов . Этот шаблон использует фабрику SAO для создания CAO.

Я использовал эту технику на работе, и она хорошо работает.

0 голосов
/ 01 июля 2009

Я не уверен, что смогу опубликовать решение вашей актуальной проблемы. Однако я могу объяснить, почему код, который вы разместили, вызывает исключение. Вы пытаетесь создать экземпляр типа интерфейса. Это не может быть сделано, интерфейс не содержит реализации. Вообще говоря, я считаю, что вы хотите создать тип удаленного объекта и привести его к интерфейсу, который вы хотите использовать (при условии, что объект реализует интерфейс).

...