Я использую IMediator с .Net Core 2.2, и у меня есть общая команда, которую я хочу добавить в коллекцию сервисов:
public class GetByIdCommand<T> : IRequest<T>
{
public GetByIdCommand(int id)
{
this.Id = id;
}
public int Id { get; set; }
}
, а вот обработчик:
public class GetByIdCommandHandler<TFrom, TTo> : IRequestHandler<GetByIdCommand<TTo>, TTo>
{
public GetByIdCommandHandler()
{
// Repository<TFrom>
}
public async Task<TTo> Handle(GetByIdCommand<TTo> request, CancellationToken cancellationToken)
{
// Get Model
}
}
И инъекция выглядит так:
services.AddMediatR(typeof(GetByIdCommandHandler<,>).GetTypeInfo().Assembly);
Когда я вызываю команду:
var model = await this.Mediator.Send(new GetByIdCommand<DbModel, MyModel>(1)).AnyContext();
Но я получаю эту ошибку:
InvalidOperationException: Обработчик не найден для запроса типа MediatR.IRequestHandler 2[GetByIdCommand
1 [MyModel], MyModel].Зарегистрируйте ваши обработчики в контейнере.Смотрите примеры в GitHub.
Я не знаю, почему я получаю эту ошибку.Есть идеи?