MediatR 请求处理程序未从其他位置调用
MediatR request handler is not called from another location
当我从控制器调用 MediatR Send() 时,处理程序被调用。
private readonly IMediator _requestsRouter;
public async Task<DTO.UserAccount> GetUserAccount()
{
var req = new GetUserAccount(x, y, z, y);
var response = await _requestsRouter.Send(req);
return response;
}
从另一个 MediatR 请求调用相同的 MediatR 请求也可以:
Controller -> MediatR_Request _1 -> GetUserAccount request handler
这也适用,除了最后一步:
Controller -> MediatR_Request_0 -> MediatR Notification -> MediatR Request _1(the same as before) -> does not arrive to GetUserAccount Handler.
我从之前的步骤 (MediatR Request#1
) 中检查了 IMediator _requestsRouter,它注册了 GetUserAccount 处理程序,如下所示:
VS 调试控制台中的可疑消息:“抛出的异常:Microsoft.Extensions.DependencyInjection.dll 中的 'System.ObjectDisposedException'
'System.ObjectDisposedException' 在 System.Private.CoreLib.dll"
无法调试,未到达处理程序。
我该如何解决问题?
嵌套 MediatR 请求、通知是否有任何限制?
我在第一个 MediatR.Publish() 调用中缺少 await。据我所知,没有 await
导致 ObjectDisposedException 现在已经消失了。
当我从控制器调用 MediatR Send() 时,处理程序被调用。
private readonly IMediator _requestsRouter;
public async Task<DTO.UserAccount> GetUserAccount()
{
var req = new GetUserAccount(x, y, z, y);
var response = await _requestsRouter.Send(req);
return response;
}
从另一个 MediatR 请求调用相同的 MediatR 请求也可以:
Controller -> MediatR_Request _1 -> GetUserAccount request handler
这也适用,除了最后一步:
Controller -> MediatR_Request_0 -> MediatR Notification -> MediatR Request _1(the same as before) -> does not arrive to GetUserAccount Handler.
我从之前的步骤 (MediatR Request#1
) 中检查了 IMediator _requestsRouter,它注册了 GetUserAccount 处理程序,如下所示:
VS 调试控制台中的可疑消息:“抛出的异常:Microsoft.Extensions.DependencyInjection.dll 中的 'System.ObjectDisposedException' 'System.ObjectDisposedException' 在 System.Private.CoreLib.dll"
无法调试,未到达处理程序。 我该如何解决问题?
嵌套 MediatR 请求、通知是否有任何限制?
我在第一个 MediatR.Publish() 调用中缺少 await。据我所知,没有 await
导致 ObjectDisposedException 现在已经消失了。