我确实有以下情况: 我有一个shell和两个模块(moduleA.dll,通过bootstrapper包含moduleB.dll),这是我使用PRISM4创建的。
ModuleA读取数据库,并从该信息中打开一个串口。该模块还提供通过串行连接发送命令。
ModuleB还可以将数据发送到同一串行连接,moduleA已经打开。此外,moduleB应该包含一个绘制来自串口的数据的图表。
例如为: ModuleA发送“Setting1,Setting2” ModuleB发送“开始” - > ModuleB接收数据( - >绘图数据) ModuleB发送“停止”
因此,根据我的理解,他们应该以某种方式共享此串口实例。有关如何设置此方案的任何想法吗?
提前致谢。
答案 0 :(得分:1)
您的初始模块/类设置似乎有误。模块的概念主要用于可插拔的可选功能,而不是你在这里描述的内容:似乎没有ModuleA就不能存在ModuleB(因为它需要端口A,并且可能需要首先发送设置等),副只有ModuleA而没有ModuleB的-versa也没有意义(只发送设置但没有数据通信)。
如果您拥有的设置非常简单,只需使用一个模块进行所有串口通信即可。那么你可以做的是将数据库抽象为一个单独的模块,最终也是绘图。然后,如果您切换到另一个数据库,您只需提供一个新模块。同样的情节。 (请注意,这只是您可以执行的操作的一个示例,并且绝不会将 解决方案视为您的特定问题)。对于'抽象'部分,您使用依赖注入MEF / Unity:在公共项目中创建接口,在模块中导出接口的实现,将其导入另一个模块。