在用Aspnet Core Identiy实施CQR时,如何注册处理程序



我正在尝试注册我的用户,使用CQRS。

我正在注册MediaTR:

services.AddMediatR(typeof(MyCommand).GetTypeInfo().Assembly);

public class Handler : IRequestHandler<RegisterCommand, object>
        {
            private readonly MyDbContext _context;
            private readonly IMediator _mediator;
            private readonly UserManager<User> _userManager;
            public Handler(IYawaMVPDbContext context, IMediator mediator, UserManager<User> userManager)
            {
                _context = context;
                _mediator = mediator;
                _userManager = userManager;
            }
}

我得到以下例外:

无效的Exception:无法解析类型的服务 尝试激活时的" mydbcontext" 'Microsoft.aspnetcore.Identity.EntityFrameWorkcore.useronlystore 6[MyCore.Domain.Entities.User,MyCore.MyApp.Persistence.MyDbContext,System.String,Microsoft.AspNetCore.Identity.IdentityUserClaim 1 [System.String],Microsoft.aspnetcore.Identity.IdentityUsityUserlogin 1[System.String],Microsoft.AspNetCore.Identity.IdentityUserToken 1 [System.Styste.String]]'。 microsoft.extensions.dependentiondoction.servicelookup.callsitefactory.createargumentCallsites(type ServiceType,类型实现类型,Callitechain Callitechain, 参数参数,bool throwcallsitenotfound(

无效的exception:错误构造处理程序以要求 类型 MediaTr.ireQuestHandler`2 [mycore.myapp.application.users.commands.register.register.registercommand,system.Object]。

用容器注册您的处理程序。有关示例,请参见Github中的样品。

任何帮助。

添加服务以解决启动文件中的dbcontext

services.AddDbContext<IYawaMVPDbContext, YourDbContextImplementation>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("yourConnectionString")));

我认为以下代码没有问题

services.AddMediatR(typeof(MyCommand).GetTypeInfo().Assembly);

处理所有媒体iRequest和iirequestHandlers。

但是您创建了一个iyawamvpdbcontext接口及其实现类,该类别无法通过该MediatR.Extensions.Microsoft.DependencyInjection

来处理

dbContext在申请启动期间注册并注入依赖项,以便可以自动提供消费服务的组件 - 手动注册此功能如

services.AddDbContext<IYawaMVPDbContext, DbContextImplementation>(options => options.UseSqlServer(Configuration.GetConnectionString("ConnectionString")));

相关内容

  • 没有找到相关文章

最新更新