2012-08-09 66 views
0

我有一个.NET类库,我需要加载到一个单独的域,并从它执行一些代码。现在我正在使用AppDomain.CreateInstanceFrom创建一个远程处理对象,并使用某个接口打开它。但我有什么替代方案?远程处理是一种过时的技术。替代远程处理跨AppDomain调用

回答

1

远程处理适用于跨AppDomain,但另一种方法是假装它们是同一台机器或不同机器上的不同进程。

例如,您可以在两者之间使用基本的套接字服务器,或者在命名管道(或类似服务器)上运行的类似WCF或服务堆栈的服务。或者将文件放在已知位置并进行轮询。或者将数据库表作为队列。或专用的消息堆栈 - 从MSMQ到redis pub/sub的任何内容。或者http服务器(可能是HttpListener)和客户端(可能是WebClient)。去野外。尽管如此,我个人会试着坚持使用远程处理。请注意,我只是在应用程序域之间说出这个,按照您在文章中列出的方式 - 我不会在进程/机器之间亲自使用远程处理。

+0

不,创建另一个过程并不是我们所需要的。如果我们以WCF为例,那么我们需要配置WCF主机,为此我们需要在另一个AppDomain中调用某些东西。所以我们再次回到Remoting。 – 2012-08-09 10:07:31

+0

@BogdanVerbenets不一定;例如它可能有一个预定义的端点,或者它可能在配置文件中可用。但坦率地说,我不清楚你想要解决什么“问题” - 对于AppDomain之间的调用,远程调用并不太难看。 – 2012-08-09 10:15:59