using GFramework.Core.Abstractions.Cqrs.Query; using GFramework.Core.Abstractions.Rule; namespace GFramework.Core.Cqrs.Extensions; /// /// 提供对 接口的 CQRS 查询扩展方法。 /// public static class ContextAwareCqrsQueryExtensions { /// /// 发送查询的同步版本(不推荐,仅用于兼容同步调用链)。 /// /// 查询响应类型。 /// 实现 接口的对象。 /// 要发送的查询对象。 /// 查询结果。 /// /// 当 时抛出。 /// public static TResponse SendQuery(this IContextAware contextAware, IQuery query) { ArgumentNullException.ThrowIfNull(contextAware); ArgumentNullException.ThrowIfNull(query); return contextAware.GetContext().SendQuery(query); } /// /// 异步发送查询并返回结果。 /// /// 查询响应类型。 /// 实现 接口的对象。 /// 要发送的查询对象。 /// 取消令牌,用于取消操作。 /// 包含查询结果的 /// /// 当 时抛出。 /// public static ValueTask SendQueryAsync( this IContextAware contextAware, IQuery query, CancellationToken cancellationToken = default) { ArgumentNullException.ThrowIfNull(contextAware); ArgumentNullException.ThrowIfNull(query); return contextAware.GetContext().SendQueryAsync(query, cancellationToken); } }