Using Serial Port Class Library in Prism MVVM Application
我继承了WPF / Prism / Unity MVVM应用程序,需要链接到通过串行端口进行外部通信的类库中。串行端口库发布事件以获取错误和消息。
我是Prism的新手,但几年前我已经使用Unity。 Prism应用程序(简称为PrismApp)是基本的PrismApplication,具有两个模块:main和settings。我的串行端口库(我们称其为LibSerial)包装了基本的通信协议并发布了三个事件:ConnectionEventReceived,ErrorEvent和MessageReceived。 LibSerial具有Connect,StartSession和Send的功能。
我的问题是:
- 我在哪里实例化我的LibSerial?我要为其创建模型还是可以在基本PrismApplication中实例化LibSerial?
- 如何将事件发布到ViewModels?我假设我会在某个地方使用LibSerial事件,并使用EventAggregator将各种EventArgs推入视图模型中?
- 我如何在PrismApp中调用我的LibSerial启动/启动会话/发送功能?在调用pubsub.publish的ViewModel中,它是DeleagateCommand吗?
谢谢大家!
Where do I instantiate my LibSerial?
将其注册到您的引导程序中,然后让容器实例化它。覆盖
1 2 3 4 | protected override void RegisterTypes(IContainerRegistry containerRegistry) { containerRegistry.RegisterSingleton<ILibSerial, LibSerial>(); } |
然后可以使用
1 2 3 4 5 6 7 | public class ViewModel { public ViewModel(ILibSerial libSerial) { libSeriel.MessageReceived += ...; } } |
容器将负责实例化,并且前提是您在引导程序中使用