diff --git a/GFramework.Core/extensions/ContextAwareCommandExtensions.cs b/GFramework.Core/extensions/ContextAwareCommandExtensions.cs index 08de9bb..abcc307 100644 --- a/GFramework.Core/extensions/ContextAwareCommandExtensions.cs +++ b/GFramework.Core/extensions/ContextAwareCommandExtensions.cs @@ -59,24 +59,6 @@ public static class ContextAwareCommandExtensions context.SendCommand(command); } - /// - /// [Mediator] 异步发送命令并返回结果 - /// - /// 命令响应类型 - /// 实现 IContextAware 接口的对象 - /// 要发送的命令对象 - /// 取消令牌,用于取消操作 - /// 包含命令执行结果的ValueTask - /// 当 contextAware 或 command 为 null 时抛出 - public static ValueTask SendCommandAsync(this IContextAware contextAware, - Mediator.ICommand command, CancellationToken cancellationToken = default) - { - ArgumentNullException.ThrowIfNull(contextAware); - ArgumentNullException.ThrowIfNull(command); - - var context = contextAware.GetContext(); - return context.SendCommandAsync(command, cancellationToken); - } /// /// 发送并异步执行一个无返回值的命令 diff --git a/GFramework.Core/extensions/ContextAwareMediatorCommandExtensions.cs b/GFramework.Core/extensions/ContextAwareMediatorCommandExtensions.cs new file mode 100644 index 0000000..80c308d --- /dev/null +++ b/GFramework.Core/extensions/ContextAwareMediatorCommandExtensions.cs @@ -0,0 +1,48 @@ +using GFramework.Core.Abstractions.rule; +using Mediator; + +namespace GFramework.Core.extensions; + +/// +/// 提供对 IContextAware 接口的 Mediator 命令扩展方法 +/// 使用 Mediator 库的命令模式 +/// +public static class ContextAwareMediatorCommandExtensions +{ + /// + /// [Mediator] 发送命令的同步版本(不推荐,仅用于兼容性) + /// + /// 命令响应类型 + /// 实现 IContextAware 接口的对象 + /// 要发送的命令对象 + /// 命令执行结果 + /// 当 contextAware 或 command 为 null 时抛出 + public static TResponse SendCommand(this IContextAware contextAware, + ICommand command) + { + ArgumentNullException.ThrowIfNull(contextAware); + ArgumentNullException.ThrowIfNull(command); + + var context = contextAware.GetContext(); + return context.SendCommand(command); + } + + /// + /// [Mediator] 异步发送命令并返回结果 + /// + /// 命令响应类型 + /// 实现 IContextAware 接口的对象 + /// 要发送的命令对象 + /// 取消令牌,用于取消操作 + /// 包含命令执行结果的ValueTask + /// 当 contextAware 或 command 为 null 时抛出 + public static ValueTask SendCommandAsync(this IContextAware contextAware, + ICommand command, CancellationToken cancellationToken = default) + { + ArgumentNullException.ThrowIfNull(contextAware); + ArgumentNullException.ThrowIfNull(command); + + var context = contextAware.GetContext(); + return context.SendCommandAsync(command, cancellationToken); + } +} \ No newline at end of file diff --git a/GFramework.Core/extensions/ContextAwareMediatorQueryExtensions.cs b/GFramework.Core/extensions/ContextAwareMediatorQueryExtensions.cs new file mode 100644 index 0000000..fe4b823 --- /dev/null +++ b/GFramework.Core/extensions/ContextAwareMediatorQueryExtensions.cs @@ -0,0 +1,47 @@ +using GFramework.Core.Abstractions.rule; +using Mediator; + +namespace GFramework.Core.extensions; + +/// +/// 提供对 IContextAware 接口的 Mediator 查询扩展方法 +/// 使用 Mediator 库的查询模式 +/// +public static class ContextAwareMediatorQueryExtensions +{ + /// + /// [Mediator] 发送查询的同步版本(不推荐,仅用于兼容性) + /// + /// 查询响应类型 + /// 实现 IContextAware 接口的对象 + /// 要发送的查询对象 + /// 查询结果 + /// 当 contextAware 或 query 为 null 时抛出 + public static TResponse SendQuery(this IContextAware contextAware, IQuery query) + { + ArgumentNullException.ThrowIfNull(contextAware); + ArgumentNullException.ThrowIfNull(query); + + var context = contextAware.GetContext(); + return context.SendQuery(query); + } + + /// + /// [Mediator] 异步发送查询并返回结果 + /// + /// 查询响应类型 + /// 实现 IContextAware 接口的对象 + /// 要发送的查询对象 + /// 取消令牌,用于取消操作 + /// 包含查询结果的ValueTask + /// 当 contextAware 或 query 为 null 时抛出 + public static ValueTask SendQueryAsync(this IContextAware contextAware, + IQuery query, CancellationToken cancellationToken = default) + { + ArgumentNullException.ThrowIfNull(contextAware); + ArgumentNullException.ThrowIfNull(query); + + var context = contextAware.GetContext(); + return context.SendQueryAsync(query, cancellationToken); + } +} \ No newline at end of file diff --git a/GFramework.Core/extensions/ContextAwareQueryExtensions.cs b/GFramework.Core/extensions/ContextAwareQueryExtensions.cs index ed2d47e..3d9719e 100644 --- a/GFramework.Core/extensions/ContextAwareQueryExtensions.cs +++ b/GFramework.Core/extensions/ContextAwareQueryExtensions.cs @@ -42,24 +42,6 @@ public static class ContextAwareQueryExtensions return context.SendQuery(query); } - /// - /// [Mediator] 异步发送查询并返回结果 - /// - /// 查询响应类型 - /// 实现 IContextAware 接口的对象 - /// 要发送的查询对象 - /// 取消令牌,用于取消操作 - /// 包含查询结果的ValueTask - /// 当 contextAware 或 query 为 null 时抛出 - public static ValueTask SendQueryAsync(this IContextAware contextAware, - Mediator.IQuery query, CancellationToken cancellationToken = default) - { - ArgumentNullException.ThrowIfNull(contextAware); - ArgumentNullException.ThrowIfNull(query); - - var context = contextAware.GetContext(); - return context.SendQueryAsync(query, cancellationToken); - } /// /// 异步发送一个查询请求