为所有传入请求设置一个Request / RequestHandler

时间:2015-10-20 17:47:08

标签: c# asp.net-mvc decorator mediator mediatr

我一直在使用MediatR,在我当前的项目中取得了很大的成功。使用mediator pipeline解决跨领域问题的想法非常好。

我没有得到的一件事(可能原因是我缺乏对c#covariance/contravariance的曝光)是我如何处理单个处理程序中的所有传入请求?我想在执行请求之前执行操作,无论其类型如何:

IRequest

IRequest<Foo>

我得到了Jimmy关于PreRequestHandler的说法但是我无法为所有请求实现单一的请求,因为它们总是被键入(我可以为我所拥有的每个IRequest实现一个IPreRequest,但这听起来不对) ....

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

以下是我如何使用Castle Windsor和Mediatr(让我们说我们想要记录并授权对每个处理程序的调用)。看看我做的主旨:Decorator unit test

请注意,在使用容器注册处理程序时(在我的情况下使用Castle Windsor),您需要按正确的顺序注册它们(至少在Windsor,YMMV)。

另外,请注意我在注册组件时进行排除(对于装饰器,注册除了其他装饰器处理程序之外的所有具体类型。)

相关问题