Я пытаюсь запустить MediatR с Autofac в .NET Framework 4.6.2.
Моя регистрация:
public class MediatorModule : Autofac.Module
{
protected override void Load(ContainerBuilder builder)
{
builder.RegisterSource(new ContravariantRegistrationSource());
builder.RegisterAssemblyTypes(typeof(IMediator ).Assembly).AsImplementedInterfaces();
builder.RegisterType<HealthCheckQueryHandler>().As<IRequestHandler<HealthCheckQuery, HttpStatusCode>>();
}
}
Мой контроллер:
[RoutePrefix("api/v1/healthcheck")]
public class HealthCheckController : ApiController
{
private readonly IMediator _mediator;
public HealthCheckController(IMediator mediator)
{
_mediator = mediator;
}
[HttpGet]
[Route("")]
public async Task<HttpStatusCode> Get()
{
var query = new HealthCheckQuery();
var result = await _mediator.Send(query);
return result;
}
}
Когда я пытаюсь запустить этот метод API, я получаю следующую ошибку: Ни один из конструкторов, найденных с Autofac.Core.Activators.Reflection.DefaultConstructorFinder 'типа' MediatR.Mediator ', не может быть вызван с доступными службами и параметрами: \r \ nНе удается разрешить параметр 'MediatR.ServiceFactory serviceFactory' конструктора 'Void .ctor (MediatR.ServiceFactory)
Вики (https://github.com/jbogard/MediatR/wiki)) просит нас зарегистрировать SingleInstanceFactory и MultiInstanceFactory. Но Visual Studio не является.способен разрешить любой из этих символов.
Как я могу решить эту проблему, чтобы MediatR работал с Autofac?