В CAO нет URI, поэтому указанный тип должен быть зарегистрирован на стороне сервера. Но если мой клиент и сервер взаимодействуют через один и тот же интерфейс (удаленный объект реализует интерфейс), то как я могу вызвать удаленный объект CAO со стороны клиента. Это дает мне исключение, если я пытаюсь вызвать Acitvator.CreateInstance, используя тип интерфейса. например
RemoteObject.IRemoteObject obj = (RemoteObject.IRemoteObject )Activator.CreateInstance(typeof(RemoteObject.IRemoteObject), null, url);
Приведенный выше код выдает исключение.
2 ответа
Я не уверен, что смогу опубликовать решение вашей актуальной проблемы. Однако я могу объяснить, почему опубликованный вами код вызывает исключение. Вы пытаетесь создать экземпляр типа интерфейса. Это невозможно сделать, интерфейс не содержит реализации. Вообще говоря, я считаю, что вы хотите создать тип удаленного объекта и привести его к интерфейсу, который вы хотите использовать (при условии, что объект реализует интерфейс).
Возможно, вы захотите использовать метод, описанный в этой статье MSDN Реализация брокера с .NET. Удаленное взаимодействие с использованием объектов, активируемых клиентом. Этот шаблон использует фабрику SAO для создания CAO.
Я использовал эту технику на работе, и она работает хорошо.
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.