0

在我当前的项目中,我一直在使用MediatR并取得了很大的成功。使用中介管道来解决横切关注点的想法非常好。

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

IRequest

或者

IRequest<Foo>

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

请问有什么想法吗?

4

1 回答 1

1

这是我使用 Castle Windsor 和 Mediatr 的方法(假设我们要记录和授权对每个处理程序的调用)。请参阅我提出的要点:装饰器单元测试

请注意,在向容器(在我的例子中为温莎城堡)注册处理程序时,您需要以正确的顺序注册它们(至少在温莎,YMMV)。

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

于 2015-11-06T16:22:08.323 回答