【问题标题】:Is it OK to have one handler call another when using MediatR?使用 MediatR 时可以让一个处理程序调用另一个处理程序吗?
【发布时间】:2018-08-09 01:47:15
【问题描述】:

或者这被认为是不好的做法还是什么?

我有一个通知触发 4-5 个处理程序,它们依次调用数据库来检索数据。每个这些调用也可以单独调用,因此它们本身就是请求/处理程序。

谢谢。

【问题讨论】:

  • 你说的是this library吗?
  • 我已经做到了。没关系,只要你管理好。但是,如果您不小心,这是进入堆栈溢出异常的一种快速方法。保持处理程序小,你会没事的
  • @DannyChen 是的。
  • @Alex 谢谢。溢出,你的意思是进入循环调用?现在我再次查看它,其中一些子调用大多是内部调用,没有来自最终用户的直接“请求”。也许把它们写成“服务”?
  • 是的,就是这样。 AbcHandler 调用 XyzHandler,后者又调用 AbcHandler

标签: c# oop cqrs mediatr


【解决方案1】:

Jimmy Bogard(mediatr 的作者)说你应该避免这种情况。

查看他的博文

https://lostechies.com/jimmybogard/2016/12/12/dealing-with-duplication-in-mediatr-handlers/

或者这个堆栈溢出问题和答案 https://github.com/jbogard/MediatR/issues/400

另请注意,如果您使用行为,它们将运行多次。这可能会导致代码效率低下,但当然也可能是您想要发生的事情:-)

【讨论】:

  • 虽然这可能会回答问题,但请考虑链接失效的事实。因此,请考虑总结您链接到的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多