很长一段时间,我定期搜索有关在多模块Prism MVVM应用程序中创建对串行端口的共享访问的信息,但没有任何好的论文。因此,我在这里向你致辞。我在Windows 10 64位操作系统中使用MS VS 2015 Professional开发了C#WPF MVVM Prism 6应用程序。将该溶液组成为:在Prism 6多模块WPF MVVM应用程序中创建共享串行端口访问的最佳方式是什么?
- 壳牌(主窗口)项目。
- 多个棱镜模块项目。
- ClassLibrary项目可以从所有这些棱镜模块 和Shell进行全局访问。
我需要从应用程序中的所有Prism模块的一个串行端口实例共享访问以与外部设备进行通信。 解决共享串口问题的最佳方法是什么? 如果我将SerialPort创建为公共静态成员并将其放置在上述ClassLibrary中的一个静态类中,那么这种方法是否是最好的?或者把这样的SerialPort实例放在共享服务中会是最好的?或者有关共享SerialPort实例的其他任何解决方案都有位置? 那么请指教我如何在多模块Prism 6 WPF MVVM应用程序中定义全局访问的共享SerialPort?
非常感谢,豪金格。我会遵照你的建议。如果我有一些问题,我会写在这里。 – Prohor
Haukinger,你是否(在你的例子中)实现ISerialPortService并将其注册为同一个模块中的单例?与在Bootstrapper中注册的共享服务有什么不同? – Prohor
实现和注册总是发生在同一模块中,因为大多数情况下,实现是“内部”的,并且模块不会互相引用。无论你是在一个模块中执行还是引导程序都无关紧要,引导程序,也就是应用程序,只是另一个带有特殊名称的模块,可以这么说。该服务的共享,因为它的接口是共享的... – Haukinger