namespace Dpz.Core.Service.Mediator.Common.Behaviors;

/// <summary>
/// Mediator 管道:记录消息处理开始与结束。
/// </summary>
/// <typeparam name="TMessage">消息类型。</typeparam>
/// <typeparam name="TResponse">响应类型。</typeparam>
public sealed class MediatorLoggingBehavior<TMessage, TResponse>
    : IPipelineBehavior<TMessage, TResponse>
    where TMessage : IMessage
{
    /// <summary>
    /// 执行日志管道逻辑。
    /// </summary>
    public async ValueTask<TResponse> Handle(
        TMessage message,
        MessageHandlerDelegate<TMessage, TResponse> next,
        CancellationToken cancellationToken
    )
    {
        //var messageName = typeof(TMessage).Name;
        //logger.LogDebug("[Mediator] Handling message: {MessageName}", messageName);

        var response = await next(message, cancellationToken);

        //logger.LogDebug("[Mediator] Handled message: {MessageName}", messageName);
        return response;
    }
}
评论加载中...