GFramework/GFramework.Core/Architectures/ArchitectureModules.cs
GeWuYou 5c112f8545 docs(core): 添加 CQRS 和核心框架文档
- 新增 CQRS 详细文档,介绍命令查询职责分离模式
- 添加核心框架概述文档,包含架构图和快速开始指南
- 详细介绍五层架构设计和组件联动机制
- 提供完整的最佳实践和设计理念说明
- 添加架构生命周期管理和模块化设计说明
2026-04-14 22:30:59 +08:00

41 lines
1.5 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 请求管道行为。
/// 历史方法名保留了 Mediator 前缀,但当前用于配置框架内建 CQRS runtime 的行为拦截和处理逻辑。
/// 支持开放泛型行为类型和针对单一请求的封闭行为类型。
/// </summary>
/// <typeparam name="TBehavior">行为类型,必须是引用类型</typeparam>
public void RegisterMediatorBehavior<TBehavior>() where TBehavior : class
{
logger.Debug($"Registering CQRS pipeline behavior: {typeof(TBehavior).Name}");
services.Container.RegisterMediatorBehavior<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;
}
}