在CAO中没有URI,因此必须在服务器端注册指定的类型。但是如果我的客户端和服务器通过相同的接口(远程对象实现接口)进行交互,那么如何从客户端调用CAO远程对象。如果我尝试使用接口类型调用Acitvator.CreateInstance,它会给我异常。 例如。
RemoteObject.IRemoteObject obj = (RemoteObject.IRemoteObject )Activator.CreateInstance(typeof(RemoteObject.IRemoteObject), null, url);
以上代码抛出异常。
答案 0 :(得分:0)
我不确定我是否可以针对您的实际问题发布解决方案。但是,我可以解释为什么您发布的代码会引发异常。您正在尝试创建接口类型的实例。这是不可能的,接口不包含任何实现。一般来说,我相信你想要做的是创建远程对象类型并将其强制转换为你想要使用的接口(假设对象实现了接口)。
答案 1 :(得分:0)
您可能需要考虑使用此MSDN文章Implementing Broker with .NET Remoting Using Client-Activated Objects中概述的技术。此模式使用SAO工厂来创建CAO。
我在工作中使用过这种技术,效果很好。