我确实有以下场景:我有一个shell和两个模块(moduleA.dll,moduleB.dll通过引导程序包括在内),这是我使用PRISM4创建的。
ModuleA读取数据库,并从该信息中打开一个串口。该模块还提供通过串行连接发送命令。
ModuleB也可以将数据发送到相同的串行连接,moduleA已经打开。此外,moduleB应该包含一个绘制来自串口的数据的图表。
例如: ModuleA发送"Setting1,Setting2“ModuleB发送"Start”-->ModuleB接收数据(->绘图数据) ModuleB发送“停止”
因此,据我所知,他们应该以某种方式共享这个串口实例。有什么办法来设置这个场景吗?
提前谢谢。
发布于 2013-09-27 13:29:32
您的初始模块/类设置似乎是错误的。模块的概念主要适用于可插拔的可选功能,而不是您在这里描述的功能:似乎ModuleB不可能没有ModuleA (因为它需要端口A,并且可能需要先发送设置等等),反之亦然--只有没有ModuleB的ModuleA也没有意义(只发送设置,没有数据通信)。
如果你的设置和你写的一样简单,只需使用一个模块来进行所有的串口通信。然后,您可以将数据库抽象到单独的模块中,并最终进行绘图。然后,如果您切换到另一个数据库,您只需提供一个新模块。情节也是如此。(请注意,这只是一个例子,说明您可以做些什么,而绝不是将其视为解决特定问题的方法)。对于“抽象化”部分,您使用MEF/Unity的依赖注入:在公共项目中创建接口,在模块中导出接口的实现,在另一个模块中导入接口。
https://stackoverflow.com/questions/19051594
复制相似问题