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

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

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

2
Punit Singhi 22 Июн 2009 в 12:53

2 ответа

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

0
Timothy Carter 1 Июл 2009 в 20:16

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

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

0
Nathan Fox 3 Окт 2009 в 08:13