是否可以将订阅操作包装到mapper方法中?

时间:2019-08-11 14:01:41

标签: c# prism eventaggregator

我正在使用Prism.EventAggregator订阅活动。当我订阅时,参数类型与触发实际事件时出现的EventArgs不同。因此,我试图使用某种映射器方法来转换EventArgs

问题似乎出在映射上。当我消除此步骤时,它可以完美运行。但是我不允许将EventArgs暴露给定义动作的层。

public void SubscribeForStrangeEvent(Action<string> doSomething)
{
    void TempAction(StrangeEventArgs args) => doSomething(args.SomeProperty);
    _eventAggregator.GetEvent<StrangeEvent>().Subscribe(TempAction);
}

我希望发布StrangeEvent时,它将导致TempAction运行,然后doSomething运行。奇怪的行为是,当事件首次发布时,它按预期工作。但是第二次发布不会导致TempAction运行。

0 个答案:

没有答案