【问题标题】:Composite WPF GUI sharing SerialPort (PRISM/MEF)复合 WPF GUI 共享 SerialPort (PRISM/MEF)
【发布时间】:2013-09-27 13:08:30
【问题描述】:

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

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

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

例如: ModuleA 发送“Setting1,Setting2” ModuleB 发送“开始” -->ModuleB 接收数据(-->绘制数据) ModuleB 发送“停止”

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

提前致谢。

【问题讨论】:

    标签: c# wpf serial-port mef prism-4


    【解决方案1】:

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

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

    【讨论】:

    • +1 首先,感谢您快速而有帮助的回复。我现在看到我的模块的构建不是最好的选择。
    • stijn 我还有一个问题。你能给我举个例子吗?我是 prism 新手,如果 moduleA 中的数据立即更新,我找不到更新 moduleB 中数据的示例。
    • 您应该更具体,并且可能为此创建一个单独的问题。但是这里列出了原理:stackoverflow.com/questions/18530203/…
    猜你喜欢
    • 2013-10-06
    • 2013-02-03
    • 2011-01-15
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    • 2013-01-29
    • 1970-01-01
    相关资源
    最近更新 更多