问题标签 [mediatr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1262 浏览

asp.net-core - 如何建模将路径段绑定到对象属性

我有以下控制器方法,它接受命令作为从客户端传递的更改模型。

问题是如果我想将 {name} 保留在 url 中,我必须手动将 FeatureName 属性复制到命令对象。另一个问题是,如果在模型绑定期间未设置 FeatureName,我将无法正确进行验证。

将路径的 {name} 段自动模型绑定到命令的 FeatureName 属性的最佳方法是什么。

0 投票
0 回答
182 浏览

c# - 如何为使用 Autofac 实现相同接口的事件处理程序集合注册通用装饰器

所以我们有两个 Eventhandlers 监听同一个事件。装饰器应该创建一个 LifteTimeScope,解析装饰事件处理程序并调用装饰事件处理程序的 Handle 方法。我发现了很多使用 CommandHandlers 执行此操作的示例。但那里更容易,因为每个命令只有一个处理程序。不太多。所以问题是如何在 autofac 中注册事件处理程序和装饰器!

0 投票
2 回答
773 浏览

asp.net-mvc - 无法通过结构映射 IoC 自动注册 Mediatr

我有一个具有多层架构的 Web 应用程序,以及与结构图配置分开的层中的处理程序和查询类。我尝试动态注册所有处理程序和查询,但我不能。当我尝试运行应用程序时,我收到运行时错误:

没有注册默认实例,无法自动确定类型“IRequestHandler”没有为 IRequestHandler 指定配置

控制器 var query = new GetUserQuery(id);var user = _mediator.Send(query);

询问

处理程序

0 投票
1 回答
293 浏览

c# - 是否可以使用装饰器类使用 Autofac 和 MediatR 创建每个事件处理程序的 LifeTimeScope

是否可以使用装饰器类使用 Autofac 和 MediatR 创建每个事件处理程序的 LifeTimeScope?

所以我们有两个 Eventhandlers 监听同一个事件。装饰器应该创建一个 LifteTimeScope,解析装饰事件处理程序并调用装饰事件处理程序的 Handle 方法。我发现了很多使用 CommandHandlers 执行此操作的示例。我玩过类似于下面显示的代码。但我不能让它工作。一些帖子还建议制作一个 autofac 注册源。我在这里放了一个小提琴https://dotnetfiddle.net/fw4IBw

0 投票
0 回答
243 浏览

mediatr - MediatR 的 Autofac 注册问题

我在使用 AutoFac 的 MediatR 方面遇到了一些问题。我的注册码在下面,我从 GitHub 提取并稍作修改。该类EntityContext位于主代码程序集中,并Assembly设置为该程序集:

我的所有 IRequestHandler 注册都无法使用

上述类型的显式注册也不起作用。任何人都可以帮忙吗?

0 投票
0 回答
851 浏览

c# - 包装 MediatR 并推断请求/响应

我们正在使用MediatR,我想在可以发生IMediator.Send一些丰富的地方进行包装。TRequest

问题在于,使用此实现,我必须在调用 Send 方法时完全键入 TRequest/TResponse 类型。

给出以下编译错误:

错误 CS0411 无法从用法中推断方法“HandlerBase.Send(T)”的类型参数。尝试明确指定类型参数。

我怎样才能避免写作

0 投票
2 回答
1657 浏览

dependency-injection - 使用 ASP.NET Core DI 注册受 MediatR 管道约束的 PostProcessor

以前,我们有以下管道设置用于审计日志记录

IAudiLogRequest 在哪里实现 IRequest

所有且只有实现 IAudiLogRequest 的命令到达 AuditLogPostProcessor。

使用 SimpleInjector 注册如下

目前,我们使用 ASP.NET Core DI 进行依赖注入,注册如下。

当命令实现 IRequest 时,我们得到错误

因此,DI 似乎没有遵守约束。我可以使用 ASP.NET Core DI 获得所需的行为吗?

0 投票
0 回答
171 浏览

structuremap - NPoco 与 StructureMap 最佳实践

我正在为 Web API + MVC 5 项目(使用 StructureMap)设置 NPoco 以进行依赖注入,但我不确定管理数据库连接的最佳实践是什么。我应该使用单例,还是按请求范围,或者别的什么?API/MVC 控制器本身并没有真正使用数据库,而是最终将其注入到 Mediatr CQRS 处理程序中。

目前我正在使用安装类

像这样配置了 StrucureMap

0 投票
1 回答
1589 浏览

asp.net-core - 使用 autofac 在 MediatR 和 ASP.NET Core 中连接验证

我刚刚开始在 asp.net 核心项目中使用 MediatR,并且正在努力连接验证......

这是我的控制器:

...以及 CreatePerson 命令、验证(通过 FluentValidation)和请求处理程序:

我有这个通用的验证处理程序:

...但我正在努力使用 autofac 在 Startup.ConfigureServices 中正确连接验证:

当我运行应用程序并 POST /api/person { "title": "Mr", "firstName": "Paul", "surname": "" }

我得到一个 200。 CreatePersonH​​andler.Handle() 被调用,但 CreatePersonValidator() 从未被调用。

我在 Startup.ConfigureServices() 中遗漏了什么吗?

0 投票
3 回答
5467 浏览

dependency-injection - 无法向 Mediatr 注册 IRequestPreProcessors

我想注册以下虚拟 IRequestPreProcessor (Mediator 3)

为此,我有我的容器设置以将 IRequestPreProcessor 映射到我的具体实现IdentifyUserTypeCommandHandler

一旦我运行代码,我就会得到以下异常

System.ArgumentException:开放通用服务类型“MediatR.Pipeline.IRequestPreProcessor`1[TRequest]”需要注册开放通用实现类型。

我只想为 RegisterUserCommand 类型的命令运行此预处理器。关于如何解决这个问题的任何想法?

仅供参考,

谢谢, 问候, Seb