棱镜事件在发布模式下不起作用
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
让您的订阅者保持活动状态,请确保在不再需要时处理订阅,否则会导致内存泄漏。
我在 WPF 应用程序中使用 Prism。
我已经订阅了一个活动。
_iEventAggregator.GetEvent<MyEvent>().Unsubscribe(AddSubscription);
AddSubscription = _iEventAggregator.GetEvent<MyEvent>().Subscribe((i) =>
{
Added(ViewModel, i);
});
在其他 class 中发布活动。它在调试模式下工作正常。但是在切换到发布模式时它不能正常工作。即订阅者方法未在源中命中并且未执行该部分。
如何检查这个问题,有没有办法知道我的订阅是否成功并解决这个问题。
您必须确保订阅者在发布事件时处于活动状态(即已构造且未被垃圾回收)。
除非您使用 keepSubscriberReferenceAlive: true
进行订阅,否则单靠订阅不会让订阅者保持活跃。
编辑:
如果您使用 EventAggregator
让您的订阅者保持活动状态,请确保在不再需要时处理订阅,否则会导致内存泄漏。