我正在开发一个项目,我想要一个像系统一样的插件沙箱,但是我遇到的问题是双向实时交叉进程通信。起初我想到了WCF,因为它可以传递对象元数据,但是很快就意识到WCF的Service Client模型会带来问题。但在我放下所有的想法和问题之前,这正是我的计划。双向交叉进程通信
我想要一个主机应用程序来完成大部分的工作,让我们调用这个host.exe,host.exe将托管程序的主要应用程序逻辑,以及启动,执行和查杀插件。插件将通过一个将通过MEF托管的插件代理托管,因此我们将其称为proxy.exe。 proxy.exe将加载插件dll并将其托管在一个僻静的环境中,以隔离故障,如果插件失败,它将终止代理而不是应用程序。主机和代理需要在两个方向上进行实时通信,并且因为要有多个代理主机,所以最好能够传递对象数据。
所以这是我想要的基本想法。我在想几种方法来做到这一点。第一个是WCF,但是我认为WCF的工作方式对于服务器的服务器发送请求/命令将是困难的。下一个想法是什么使用TCP,并让主机成为一个TCP服务器并开发一个可用于通信的消息传递协议,然而这带来了一个问题,因为我没有WCF元数据的奢华和传递复杂的类信息精神错乱。
通过我所有的研究,我已经提出了问题后的问题,它将非常感谢,如果有人能够建议解决这个问题。谢谢。
你如何帮助我们?你真的认为使用几个代码示例我们可以解决你的问题吗? –
你在说IPC吗?那么,你不需要WCF,WCF不是实时的进程间通信服务,而是使用基于IPC的实时客户端 - 服务器技术。 –
@Artur Mustafin,我只是想要我的计划到目前为止的想法和反馈。是的,我知道WCF不是实时的。这是我正在看的一个选项。虽然我没有代码,但我不想要代码,只是想法和反馈,谢谢。 – p1p3l1n3