using GFramework.Cqrs.Abstractions.Cqrs;
namespace GFramework.Cqrs.Tests.Cqrs;
///
/// 作为内层行为验证缓存 executor 复用后仍保持注册顺序。
///
internal sealed class DispatcherPipelineOrderInnerBehavior : IPipelineBehavior
{
///
/// 记录内层行为的前后执行节点。
///
/// 当前请求。
/// 下一个处理阶段。
/// 取消令牌。
/// 下游处理器结果。
public async ValueTask Handle(
DispatcherPipelineOrderCacheRequest request,
MessageHandlerDelegate next,
CancellationToken cancellationToken)
{
DispatcherPipelineOrderState.Record("Inner:Before");
var result = await next(request, cancellationToken).ConfigureAwait(false);
DispatcherPipelineOrderState.Record("Inner:After");
return result;
}
}