gpt4 book ai didi

.net-core - 如何注册 MediatR 后处理器

转载 作者:行者123 更新时间:2023-12-04 08:38:37 25 4
gpt4 key购买 nike

我想在 MediatR 中尝试新的管道功能:https://github.com/jbogard/MediatR/wiki/Behaviors

我尝试了以下操作,但没有执行

services.AddMediatR();                    
services.AddTransient(typeof(IRequestPostProcessor<,>), typeof(PostHandler<,>));

我错过了什么?

最佳答案

您需要注册与后处理器相关的行为,例如 this unit test显示。

您的注册码如下所示:

services.AddMediatR();
services.AddTransient(typeof(IRequestPostProcessor<,>), typeof(PostHandler<,>));
services.AddTransient(typeof(IPipelineBehavior<,>), typeof(RequestPostProcessorBehavior<,>));

那个 behavior将获取您注册的所有后处理器并执行它们。

编辑

在评论了两次后处理器运行后,我查看了在ASP.NET Core 内置DI 容器中注册MediatR 的代码,结果是 IRequestPreProcessor<TRequest, TResponse> 的实例。和 IRequestPostProcessor<TRequest, TResponse>自动注册,如您所见 here .要让它们在管道中运行,剩下要做的就是注册相关的行为。所以必要的注册是:

services.AddMediatR();
services.AddTransient(typeof(IPipelineBehavior<,>), typeof(RequestPostProcessorBehavior<,>));

关于.net-core - 如何注册 MediatR 后处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42306384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com