0

我确实有以下情况:我确实有一个 shell 和两个模块(通过引导程序包含的 moduleA.dll、moduleB.dll),这是我使用 PRISM4 创建的。

ModuleA 读取数据库并从该信息中打开一个串行端口。该模块还提供通过串行连接发送命令。

ModuleB也可以发送数据到同一个串口,moduleA已经openend了。此外,moduleB 应该包含一个绘图,该绘图绘制来自串行端口的数据。

例如:ModuleA 发送“Setting1,Setting2” ModuleB 发送“Start”-->ModuleB 接收数据(-->Plot data) ModuleB 发送“Stop”

因此,据我了解,他们应该以某种方式共享此串行端口实例。任何想法如何设置这个场景?

提前致谢。

4

1 回答 1

1

您的初始模块/类设置似乎错误。模块的概念主要用于可插入的可选功能,而不是您在此处描述的:似乎没有 ModuleA 就无法存在 ModuleB(因为它需要端口 A 具有并且可能需要首先发送设置等),反之亦然- 反之,只有 ModuleA 而没有 ModuleB 也没有任何意义(仅发送设置但没有数据通信)。

如果你的设置真的和你写的一样简单,只需使用一个模块进行所有串行端口通信。然后,您可以做的是将数据库抽象为一个单独的模块,并最终将绘图也抽象出来。然后,如果您切换到另一个数据库,您只需提供一个新模块。对于情节也是如此。(注意,这只是你可以做的一个例子,绝不是为了解决你的特定问题)。对于“抽象”部分,您使用 MEF/Unity 的依赖注入:在通用项目中创建接口,在模块中导出接口的实现,将其导入另一个模块。

于 2013-09-27T13:29:32.707 回答