0

有谁知道某种方法可以取消在 Prism 事件聚合器上进一步广播消息?

我正在尝试做一些相当标准的命令/事件消息传递——让我用一个序列图来解释:

标准命令/事件消息传递架构

现在我想添加验证。验证应该拦截命令,确定它是否是要应用的有效命令,如果不是则取消其广播是有意义的。本质上,这就是我想要的: 可以进行命令验证的标准命令/事件消息传递

有谁知道如何按照以下方式做某事

public class Validator : ISubscribe<ChangePropertyCommand>
  public void Handle(ChangePropertyCommand cmd) {
    if(IsNotValid(cmd))
     _events.Cancel(cmd);
    else
      ...
  }
}

还是有另一种更好的模式可以使用?

4

1 回答 1

0

我怀疑如果没有大量工作来扩展 EventAggregator,这是不可能的。在我看来,最简单的方法是只让您的验证器处理代表命令的事件。如果命令有效,则验证器直接或通过引发状态更改器处理的新类型事件来执行状态更改器。当然,如果命令无效,则改为引发取消的事件。

于 2011-03-03T15:41:50.227 回答