ASP.NET Core и MediatR: Отправить запрос от обработчика? - PullRequest
0 голосов
/ 19 сентября 2019

Можно ли отправить запрос от обработчика?У меня есть бизнес-логика, например: «Когда пользователь создан - для него должен быть создан пустой репозиторий».Итак, у меня есть два запроса и два обработчика:

public class AddUser : IRequest<User> { ... }
public class AddUserHandler : IRequestHandler<AddUser, User> {
  private readonly IMediator _mediator;
  private readonly IUserRepository _userRepository;
  public AddUserHandler(IMediator mediator, IUserRepository userRepository) {
    _mediator = mediator;
    _userRepository = userRepository;
  }

  public async Task<User> Handler(AddUser request, CancellationToken token) {
    // some logic is here
    var user = _userRepository.Add(request.User);
    // create a repository
    await _mediator.Send(new AddUserRepository(user.Id), token); // EXCEPTION!!!
    return user;
  }
}

Исключение составляет:

Невозможно получить доступ к удаленному объекту.Имя объекта: 'IServiceProvider'.

в

Microsoft.Extensions.DependencyInjection.ServiceLookup.ThrowHelper.ThrowObjectDisposedException () в

Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope., ServiceFactory serviceFactory) в MediatR.Mediator.Send [TResponse] (запрос IRequest`1, CancellationToken cancellationToken) в

Domain.UseCases.Messages.Users.AddUserHandler.Handle (запрос AddUser, CancellationToken в отмене домена).UseCases \ Messages \ Users \ AddUser.cs: строка 43

...