Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MediatR错误:向容器注册处理程序_C#_Asp.net Core_Dependency Injection_Mediatr - Fatal编程技术网

C# MediatR错误:向容器注册处理程序

C# MediatR错误:向容器注册处理程序,c#,asp.net-core,dependency-injection,mediatr,C#,Asp.net Core,Dependency Injection,Mediatr,我有一个.Net核心应用程序,我使用.AddMediatR扩展来注册我的命令和处理程序的程序集 在Startup.cs中的ConfigureServices中,我使用了扩展方法 从官方的一揽子计划中 MediatR.Extensions.Microsoft.DependencyInjection包含以下内容 参数: startup.cs services.AddBLL(); public static IServiceCollection AddBLL(this IServiceCollec

我有一个.Net核心应用程序,我使用.AddMediatR扩展来注册我的命令和处理程序的程序集

在Startup.cs中的ConfigureServices中,我使用了扩展方法 从官方的一揽子计划中 MediatR.Extensions.Microsoft.DependencyInjection包含以下内容 参数:

startup.cs

 services.AddBLL();
public static IServiceCollection AddBLL(this IServiceCollection services)
    {
        services.AddAutoMapper(Assembly.GetExecutingAssembly());
        services.AddMediatR(Assembly.GetExecutingAssembly());
        services.AddTransient(typeof(IPipelineBehavior<,>), typeof(RequestPerformanceBehaviour<,>));
        services.AddTransient(typeof(IPipelineBehavior<,>), typeof(RequestValidationBehavior<,>));

        return services;
    }
public class ListEpostaHesaplariRequest : IRequest<ResultDataDto<List<ListEpostaHesaplariDto>>>
{
    public FiltreEpostaHesaplariDto Model { get; set; }
}

public class ListEpostaHesaplariHandler : IRequestHandler<ListEpostaHesaplariRequest, ResultDataDto<List<ListEpostaHesaplariDto>>>
{
    private readonly IBaseDbContext _context;
    private readonly IMapper _mapper;

    public ListEpostaHesaplariHandler(IBaseDbContext context, IMapper mapper)
    {
        _context = context;
        _mapper = mapper;
    }

    public async Task<ResultDataDto<List<ListEpostaHesaplariDto>>> Handle(ListEpostaHesaplariRequest request, CancellationToken cancellationToken)
    {
        await Task.Delay(1);

        var resultDataDto = new ResultDataDto<List<ListEpostaHesaplariDto>>() { Status = ResultStatus.Success };

        try
        {
            var foo = _context.EpostaHesaplari;

            var filtreliEpostaHesaplari = Filtre(request.Model, foo);

            var epostaHesaplariDto = _mapper.Map<List<ListEpostaHesaplariDto>>(filtreliEpostaHesaplari);

            resultDataDto.Result = epostaHesaplariDto;
        }
        catch (Exception ex)
        {
            resultDataDto.Status = ResultStatus.Error;
            resultDataDto.AddError(ex.Message);
        }

        return resultDataDto;
    }
  public abstract class BaseController : Controller
{
    private IMediator _mediator;
    public static int? birimIDD;
    protected IMediator Mediator
    {
        get
        {
            return _mediator ??= HttpContext.RequestServices.GetService<IMediator>();
        }
    }
}
[HttpPost]
    public async Task<IActionResult> MailGonderAsync()
    {

        FiltreEpostaHesaplariDto filtre = new FiltreEpostaHesaplariDto();
        filtre.Durum = true;
        var req = new ListEpostaHesaplariRequest() { Model = filtre };
        var response = await Mediator.Send(req);
    }
DependencyInjection.cs

 services.AddBLL();
public static IServiceCollection AddBLL(this IServiceCollection services)
    {
        services.AddAutoMapper(Assembly.GetExecutingAssembly());
        services.AddMediatR(Assembly.GetExecutingAssembly());
        services.AddTransient(typeof(IPipelineBehavior<,>), typeof(RequestPerformanceBehaviour<,>));
        services.AddTransient(typeof(IPipelineBehavior<,>), typeof(RequestValidationBehavior<,>));

        return services;
    }
public class ListEpostaHesaplariRequest : IRequest<ResultDataDto<List<ListEpostaHesaplariDto>>>
{
    public FiltreEpostaHesaplariDto Model { get; set; }
}

public class ListEpostaHesaplariHandler : IRequestHandler<ListEpostaHesaplariRequest, ResultDataDto<List<ListEpostaHesaplariDto>>>
{
    private readonly IBaseDbContext _context;
    private readonly IMapper _mapper;

    public ListEpostaHesaplariHandler(IBaseDbContext context, IMapper mapper)
    {
        _context = context;
        _mapper = mapper;
    }

    public async Task<ResultDataDto<List<ListEpostaHesaplariDto>>> Handle(ListEpostaHesaplariRequest request, CancellationToken cancellationToken)
    {
        await Task.Delay(1);

        var resultDataDto = new ResultDataDto<List<ListEpostaHesaplariDto>>() { Status = ResultStatus.Success };

        try
        {
            var foo = _context.EpostaHesaplari;

            var filtreliEpostaHesaplari = Filtre(request.Model, foo);

            var epostaHesaplariDto = _mapper.Map<List<ListEpostaHesaplariDto>>(filtreliEpostaHesaplari);

            resultDataDto.Result = epostaHesaplariDto;
        }
        catch (Exception ex)
        {
            resultDataDto.Status = ResultStatus.Error;
            resultDataDto.AddError(ex.Message);
        }

        return resultDataDto;
    }
  public abstract class BaseController : Controller
{
    private IMediator _mediator;
    public static int? birimIDD;
    protected IMediator Mediator
    {
        get
        {
            return _mediator ??= HttpContext.RequestServices.GetService<IMediator>();
        }
    }
}
[HttpPost]
    public async Task<IActionResult> MailGonderAsync()
    {

        FiltreEpostaHesaplariDto filtre = new FiltreEpostaHesaplariDto();
        filtre.Durum = true;
        var req = new ListEpostaHesaplariRequest() { Model = filtre };
        var response = await Mediator.Send(req);
    }
var response=wait_mediator.Send(req); 在send.cs var response=wait_mediator.send(req)中;此行运行时出现的错误

为类型为MediatR.IRequestHandler
2[IUC.BaseApplication.BLL.Handlers.Yonetim.EpostaHesaplariHandlers.ListPostaHesAplariRequest,IUC.BaseApplication.COMMON.Models.ResultDataTo
1[System.Collections.Generic.List`1[IUC.BaseApplication.BLL.Models.Yonetim.EpostaHesaplariDto.ListHesAplaridTo]]的请求构造处理程序时出错。在容器中注册处理程序。有关示例,请参见GitHub中的示例

services.AddMediatR(Assembly.GetExecutingAssembly());
所有处理程序和命令都在您传递的程序集中