mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-06 16:16:44 +08:00
- 新增 CQRS 模块详细文档,介绍命令查询职责分离模式 - 添加核心框架架构概述和五层架构设计说明 - 补充快速开始指南和最佳实践建议 - 完善包说明和组件联动机制介绍 - 添加架构生命周期管理和模块化设计说明
51 lines
1.8 KiB
C#
51 lines
1.8 KiB
C#
using GFramework.Core.Abstractions.Architectures;
|
|
using GFramework.Core.Abstractions.Logging;
|
|
|
|
namespace GFramework.Core.Architectures;
|
|
|
|
/// <summary>
|
|
/// 架构模块管理器
|
|
/// 负责管理架构模块的安装和 CQRS 行为注册
|
|
/// </summary>
|
|
internal sealed class ArchitectureModules(
|
|
IArchitecture architecture,
|
|
IArchitectureServices services,
|
|
ILogger logger)
|
|
{
|
|
/// <summary>
|
|
/// 注册 CQRS 请求管道行为。
|
|
/// 支持开放泛型行为类型和针对单一请求的封闭行为类型。
|
|
/// </summary>
|
|
/// <typeparam name="TBehavior">行为类型,必须是引用类型</typeparam>
|
|
public void RegisterCqrsPipelineBehavior<TBehavior>() where TBehavior : class
|
|
{
|
|
logger.Debug($"Registering CQRS pipeline behavior: {typeof(TBehavior).Name}");
|
|
services.Container.RegisterCqrsPipelineBehavior<TBehavior>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 注册 CQRS 请求管道行为。
|
|
/// 该成员保留旧名称以兼容历史调用点,内部行为与 <see cref="RegisterCqrsPipelineBehavior{TBehavior}" /> 一致。
|
|
/// </summary>
|
|
/// <typeparam name="TBehavior">行为类型,必须是引用类型</typeparam>
|
|
[Obsolete("Use RegisterCqrsPipelineBehavior<TBehavior>() instead.")]
|
|
public void RegisterMediatorBehavior<TBehavior>() where TBehavior : class
|
|
{
|
|
RegisterCqrsPipelineBehavior<TBehavior>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 安装架构模块
|
|
/// </summary>
|
|
/// <param name="module">要安装的模块</param>
|
|
/// <returns>安装的模块实例</returns>
|
|
public IArchitectureModule InstallModule(IArchitectureModule module)
|
|
{
|
|
var name = module.GetType().Name;
|
|
logger.Debug($"Installing module: {name}");
|
|
module.Install(architecture);
|
|
logger.Info($"Module installed: {name}");
|
|
return module;
|
|
}
|
|
}
|