棱镜事件在发布模式下不起作用

时间:2018-08-23 12:46:51

标签: c# wpf prism eventaggregator

我在WPF应用程序中使用Prism。

我已订阅活动。

 _iEventAggregator.GetEvent<MyEvent>().Unsubscribe(AddSubscription);
 AddSubscription = _iEventAggregator.GetEvent<MyEvent>().Subscribe((i) =>
 {
                Added(ViewModel, i);
 });

在其他一些类中发布事件。在调试模式下,它可以正常工作。但是当切换到释放模式时,它不能正常工作。即,订户方法未在源中被击中,并且该部件未执行。

如何检查此问题,有没有办法知道我的订阅成功并解决了此问题。

1 个答案:

答案 0 :(得分:1)

发布事件时,您必须确保订阅者仍处于活动状态(即,已构建且未进行垃圾回收)。

除非您使用keepSubscriberReferenceAlive: true进行订阅,否则仅订阅一项将无法使订阅者保持活动状态。

编辑:

如果您使用EventAggregator使订阅者保持活动状态,请确保在不再需要订阅时将其丢弃,否则会导致内存泄漏。