【发布时间】:2015-10-20 17:47:07
【问题描述】:
我一直在使用MediatR,在我当前的项目中取得了很大的成功。使用mediator pipeline 解决跨领域问题的想法非常好。
我没有得到的一件事(也许原因是我缺乏对 c#covariance/contravariance 的了解)是如何在单个处理程序中处理所有传入请求?无论请求的类型如何,我都想在执行请求之前执行一个操作:
IRequest
或
IRequest<Foo>
我明白 Jimmy 关于 PreRequestHandler 的说法,但是我无法为所有请求实现一个单独的请求,因为它们总是被键入(我可以为我拥有的每个 IRequest 实现一个 IPreRequest,但这听起来不对) ....
有什么想法吗?
【问题讨论】:
-
不知道 MediatR 是什么,但
IRequest<T>不是继承自IRequest吗?如果没有,那就太傻了。编辑:根据来源IRequest : IRequest<Unit>,其中Unit是一个通用的out参数。当然你可以用它做点什么,例如让你的Foo继承自Unit。 -
然后我会让我的所有输出参数都从 Unit 继承,这似乎不可行?
标签: c# asp.net-mvc decorator mediator mediatr