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

Prism Event not working in release mode

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

我已经订阅了一个活动。

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

在其他 class 中发布活动。它在调试模式下工作正常。但是在切换到发布模式时它不能正常工作。即订阅者方法未在源中命中并且未执行该部分。

如何检查这个问题,有没有办法知道我的订阅是否成功并解决这个问题。

您必须确保订阅者在发布事件时处于活动状态(即已构造且未被垃圾回收)。

除非您使用 keepSubscriberReferenceAlive: true 进行订阅,否则单靠订阅不会让订阅者保持活跃。

编辑:

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