1

我有一个 Prism 的 EventAgregator 的扩展方法来使用反射发布事件。实现如下:

MethodInfo raiseMethod = typeof(Extensions).GetMethod("Raise", BindingFlags.Public | BindingFlags.Static).MakeGenericMethod(obj.GetType());
raiseMethod.Invoke(null, new object[] {eventAggregator, obj, eventType});

此方法调用需要类型参数的扩展方法。此代码和事件工作正常,但仅在调试模式下。当切换到发布版本时,事件永远不会到达订阅者。

我曾尝试在订阅期间使用可选参数,keepSubscriberReferenceAlive但这并不能解决问题。

关于如何解决这个问题的任何想法?

更新 我发现问题与上述无关。似乎有一个过滤器只允许来自同一程序集的事件。但这并不能解释为什么代码在调试模式下工作。

4

0 回答 0