我有一个 Prism 的 EventAgregator 的扩展方法来使用反射发布事件。实现如下:
MethodInfo raiseMethod = typeof(Extensions).GetMethod("Raise", BindingFlags.Public | BindingFlags.Static).MakeGenericMethod(obj.GetType());
raiseMethod.Invoke(null, new object[] {eventAggregator, obj, eventType});
此方法调用需要类型参数的扩展方法。此代码和事件工作正常,但仅在调试模式下。当切换到发布版本时,事件永远不会到达订阅者。
我曾尝试在订阅期间使用可选参数,keepSubscriberReferenceAlive
但这并不能解决问题。
关于如何解决这个问题的任何想法?
更新 我发现问题与上述无关。似乎有一个过滤器只允许来自同一程序集的事件。但这并不能解释为什么代码在调试模式下工作。