【问题标题】:Mediatr implementation in ASP.Net WebApi2ASP.Net WebApi2 中的 Mediatr 实现
【发布时间】:2020-03-20 07:47:21
【问题描述】:

我正在尝试在 ASP.Net Web Api 中实现 mediatr 模式。

得到以下错误:

找不到请求类型的处理程序 MediatR.IRequestHandler`2[Orion_API.Campaigns.GetCampaigns.GetCampaignsRequest,System.Collections.Generic.List`1[Orion_API.Campaigns.GetCampaigns.GetCampaignsResponse]]。 向容器注册您的处理程序。

我的引导类如下:

builder.RegisterApiControllers(Assembly.GetExecutingAssembly());

builder.RegisterGeneric(typeof(GenericRepository<>))
       .As(typeof(IGenericRepository<>))
       .InstancePerRequest();

builder.RegisterType<Mediator>().As<IMediator>().InstancePerLifetimeScope();

builder.Register<ServiceFactory>(context =>
{
    var componentContext = context.Resolve<IComponentContext>();
    return t => {
        object o;

        return componentContext.TryResolve(t, out o) ? o : null;
    };
});


//Set the dependency resolver to be Autofac.  
Container = builder.Build();

【问题讨论】:

标签: asp.net-web-api2 mediatr


【解决方案1】:

builder.RegisterApiControllers(Assembly.GetExecutingAssembly());

    builder.RegisterGeneric(typeof(GenericRepository<>))
           .As(typeof(IGenericRepository<>))
           .InstancePerRequest();

    builder.RegisterType<Mediator>().As<IMediator>().InstancePerLifetimeScope();

    builder.Register<ServiceFactory>(context =>
    {
        var componentContext = context.Resolve<IComponentContext>();
        return t => {
            object o;

            return componentContext.TryResolve(t, out o) ? o : null;
        };
    });

【讨论】:

  • 你能解释一下为什么你发布的代码解决了这个问题以及原始代码有什么问题吗?
猜你喜欢
  • 1970-01-01
  • 2021-12-31
  • 2016-10-08
  • 1970-01-01
  • 2016-05-26
  • 2020-01-05
  • 1970-01-01
  • 1970-01-01
  • 2017-01-24
相关资源
最近更新 更多