C# 进程之间的动态绑定

C# 进程之间的动态绑定,c#,reflection,process,ipc,inter-process-communicat,C#,Reflection,Process,Ipc,Inter Process Communicat,我正在尝试创建一个非常模块化的系统。记住,任何模块都不应该真正了解在其自己的进程中运行的任何其他模块 将有另一个程序将打开,并将能够告诉这些模块将发送和接收什么我主要已经介绍了 我现在遇到的问题是,有没有一种方法可以让我在另一个进程或应用程序域中查询应用程序?在这样做之后,将这些模块绑定在一起 例如: 可以在运行时广播“X”的模块与可以接受“X”的模块相似 这可能是相当模糊的,如果是这样,请让我澄清我没有涵盖的任何内容 现在,我只需要知道是否有可能询问一个过程,如果有,如何询问?我对这方面还不太

我正在尝试创建一个非常模块化的系统。记住,任何模块都不应该真正了解在其自己的进程中运行的任何其他模块

将有另一个程序将打开,并将能够告诉这些模块将发送和接收什么我主要已经介绍了

我现在遇到的问题是,有没有一种方法可以让我在另一个进程或应用程序域中查询应用程序?在这样做之后,将这些模块绑定在一起

例如: 可以在运行时广播“X”的模块与可以接受“X”的模块相似

这可能是相当模糊的,如果是这样,请让我澄清我没有涵盖的任何内容


现在,我只需要知道是否有可能询问一个过程,如果有,如何询问?我对这方面还不太熟悉,但我的初步研究并没有带我走多远。

我最近为一个个人家庭自动化系统模拟了一个这样的系统。基本上,我希望能够让某些传感器、麦克风、摄像头等广播他们拥有的信息,让其他计算机或程序在需要时获取这些信息,而不知道编译时谁将获取数据

如果这听起来像你要找的,我会考虑一个酒吧式的建筑

在这种体系结构中,您并不是在真正质疑流程,但我认为您得到了类似的结果。基本上,您将有一个主发布子服务器

在上图中,客户机2和3订阅以接收特定类型的消息。服务器知道谁订阅了什么,因此当客户端1发送该消息时,服务器知道需要将其路由到正确的客户端

我希望这有帮助

编辑:重读你的问题后,我觉得你可能已经走到了这一步。也许你所需要的只是


管道允许您在进程之间传递一些信息。您必须通过管道对数据进行序列化和反序列化,但这与pub-sub体系结构相结合,应该可以满足您的需要

谢谢,有趣的是,这也是一个家庭系统。我希望能够创建模块,而不需要知道服务器或其他模块将在哪里,但我将对此进行研究。感谢您使用这种体系结构,任何一个模块都不需要了解任何其他模块。它只需要知道它想要接收什么样的数据。不过,每个模块都必须了解服务器,因为客户端模块需要告诉服务器它们关心某种或多种数据。谢谢,我可能最终会走这条路