GFramework/GFramework.Core/query/AbstractQueryWithResult.cs
GeWuYou 51ed593acb refactor(cqrs): 重构CQRS架构基础组件并新增核心基类
- 将命令相关抽象接口从command目录迁移至cqrs.command目录
- 新增CommandBase、NotificationBase、QueryBase和RequestBase通用基类
- 统一所有CQRS组件的命名空间为GFramework.Core.Abstractions.cqrs
- 更新所有引用位置的using语句指向新的命名空间路径
- 为命令和查询输入接口添加IInput基接口继承
- 在测试文件中同步更新相关的引用路径修改
2026-02-16 20:55:06 +08:00

30 lines
1001 B
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using GFramework.Core.Abstractions.cqrs.query;
using GFramework.Core.Abstractions.query;
using GFramework.Core.rule;
namespace GFramework.Core.query;
/// <summary>
/// 抽象查询类,提供查询操作的基础实现
/// </summary>
/// <typeparam name="TInput">查询输入参数的类型必须实现IQueryInput接口</typeparam>
/// <typeparam name="TResult">查询结果的类型</typeparam>
public abstract class AbstractQuery<TInput, TResult>(TInput input) : ContextAwareBase, IQuery<TResult>
where TInput : IQueryInput
{
/// <summary>
/// 执行查询操作
/// </summary>
/// <returns>查询结果类型为TResult</returns>
public TResult Do()
{
return OnDo(input);
}
/// <summary>
/// 抽象方法,用于实现具体的查询逻辑
/// </summary>
/// <param name="input">查询输入参数</param>
/// <returns>查询结果类型为TResult</returns>
protected abstract TResult OnDo(TInput input);
}