【问题标题】:Can I use Interface for CAO in Remoting?我可以在远程处理中使用 CAO 接口吗?
【发布时间】:2009-06-22 08:53:51
【问题描述】:

在 CAO 中没有 URI,因此必须在服务器端注册指定的类型。但是,如果我的客户端和服务器通过相同的接口进行交互(远程对象实现接口),那么我如何从客户端调用 CAO 远程对象。如果我尝试使用接口类型调用 Acitvator.CreateInstance,它会给我一个例外。 例如

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

上面的代码抛出异常。

【问题讨论】:

    标签: c# .net remoting


    【解决方案1】:

    我不确定是否可以针对您的实际问题发布解决方案。但是,我可以解释为什么您发布的代码会引发异常。您正在尝试创建接口类型的实例。这是无法做到的,接口不包含实现。一般来说,我相信您想要做的是创建远程对象类型并将其转换为您要使用的接口(假设对象实现了接口)。

    【讨论】:

      【解决方案2】:

      您可能需要考虑使用这篇 MSDN 文章 Implementing Broker with .NET Remoting Using Client-Activated Objects 中概述的技术。此模式使用 SAO 工厂来创建 CAO。

      我在工作中使用过这种技术,效果很好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-24
        • 2011-01-16
        • 1970-01-01
        • 1970-01-01
        • 2016-12-30
        相关资源
        最近更新 更多