mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-07 08:44:29 +08:00
- 重构 Command 与 Query 抽象基类文件布局,合并同名泛型家族到基名文件 - 迁移泛型 Event 类型到 Event.cs,保持公共 API 与行为不变 - 更新 analyzer warning reduction 的 RP-009 跟踪与验证结果
57 lines
1.8 KiB
C#
57 lines
1.8 KiB
C#
using GFramework.Core.Abstractions.Query;
|
||
using GFramework.Core.Rule;
|
||
using GFramework.Cqrs.Abstractions.Cqrs.Query;
|
||
|
||
namespace GFramework.Core.Query;
|
||
|
||
/// <summary>
|
||
/// 抽象查询类,提供查询操作的基础实现
|
||
/// </summary>
|
||
/// <typeparam name="TResult">查询结果的类型</typeparam>
|
||
public abstract class AbstractQuery<TResult> : ContextAwareBase, GFramework.Core.Abstractions.Query.IQuery<TResult>
|
||
|
||
{
|
||
/// <summary>
|
||
/// 执行查询操作
|
||
/// </summary>
|
||
/// <returns>查询结果,类型为TResult</returns>
|
||
public TResult Do()
|
||
{
|
||
// 调用抽象方法执行具体的查询逻辑
|
||
return OnDo();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 抽象方法,用于实现具体的查询逻辑
|
||
/// </summary>
|
||
/// <returns>查询结果,类型为TResult</returns>
|
||
protected abstract TResult OnDo();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 抽象查询类,为需要输入参数的同步查询提供基础实现。
|
||
/// </summary>
|
||
/// <typeparam name="TInput">查询输入参数的类型,必须实现 <see cref="IQueryInput" /> 接口。</typeparam>
|
||
/// <typeparam name="TResult">查询结果的类型。</typeparam>
|
||
/// <param name="input">查询输入参数。</param>
|
||
public abstract class AbstractQuery<TInput, TResult>(TInput input)
|
||
: ContextAwareBase, GFramework.Core.Abstractions.Query.IQuery<TResult>
|
||
where TInput : IQueryInput
|
||
{
|
||
/// <summary>
|
||
/// 执行查询操作。
|
||
/// </summary>
|
||
/// <returns>查询结果,类型为 <typeparamref name="TResult" />。</returns>
|
||
public TResult Do()
|
||
{
|
||
return OnDo(input);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 抽象方法,用于实现具体的查询逻辑。
|
||
/// </summary>
|
||
/// <param name="input">查询输入参数。</param>
|
||
/// <returns>查询结果。</returns>
|
||
protected abstract TResult OnDo(TInput input);
|
||
}
|