【问题标题】:alternative to Remoting when dealing with cross-AppDomain calls在处理跨 AppDomain 调用时替代 Remoting
【发布时间】:2012-08-09 08:39:21
【问题描述】:

我有一个 .NET 类库,我需要将其加载到一个单独的域并从中执行一些代码。现在我正在使用 AppDomain.CreateInstanceFrom 来创建一个远程对象并使用一些接口解包它。但我有什么选择?远程处理是一种过时的技术。

【问题讨论】:

    标签: .net reflection remoting appdomain


    【解决方案1】:

    Remoting 对于跨 AppDomain 来说很好,但另一种方法是假装它们是同一台机器或不同机器上的不同进程。

    例如,您可以在两者之间使用基本的套接字服务器,或者在命名管道(或类似)上运行的 WCF 或服务堆栈之类的东西。或已知位置的平面文件并轮询。或将数据库表作为队列。或者一个专用的消息栈——从 MSMQ 到 redis pub/sub 的任何东西。或者一个 http 服务器(HttpListener 也许)和客户端(WebClient 也许)。去狂野吧。

    不过,就个人而言,如果它有效,我会很想坚持使用远程处理。请注意,我只在应用程序域之间这样说,按照您帖子中的方式 - 我个人不会在进程/机器之间使用远程处理。

    【讨论】:

    • 不,我们不需要创建另一个进程。如果我们以 WCF 为例,那么我们需要配置 WCF 主机,为此我们需要在另一个 AppDomain 中调用某些东西。所以我们又回到了 Remoting。
    • @BogdanVerbenets 不一定;例如,它可以有一个预先确定的端点 - 或者它可以在配置文件中使用。但坦率地说,我不清楚您要解决什么“问题” - 对于 AppDomain 间调用,远程处理并不太难看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 2013-02-16
    • 1970-01-01
    相关资源
    最近更新 更多