// Copyright (c) 2025-2026 GeWuYou // SPDX-License-Identifier: Apache-2.0 using System.Threading; using GFramework.Cqrs.Abstractions.Cqrs; using GFramework.Cqrs.Cqrs; namespace GFramework.Cqrs.Tests.Cqrs; /// /// 记录缓存 notification binding 复用场景下每次分发注入到 handler 的上下文与实例身份。 /// internal sealed class DispatcherNotificationContextRefreshHandler : CqrsContextAwareHandlerBase, INotificationHandler { private readonly int _instanceId = DispatcherNotificationContextRefreshState.AllocateHandlerInstanceId(); /// /// 记录当前 handler 实例收到的上下文。 /// /// 当前通知。 /// 取消令牌。 /// 已完成任务。 public ValueTask Handle( DispatcherNotificationContextRefreshNotification notification, CancellationToken cancellationToken) { DispatcherNotificationContextRefreshState.Record(notification.DispatchId, _instanceId, Context); return ValueTask.CompletedTask; } }