mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-07 00:39:00 +08:00
- 新增ContextAwareMediatorCommandExtensions提供命令扩展方法的兼容性别名 - 新增ContextAwareMediatorExtensions提供CQRS统一接口扩展方法的兼容性别名 - 新增ContextAwareMediatorQueryExtensions提供查询扩展方法的兼容性别名 - 添加CqrsRuntimeModule用于注册CQRS运行时和处理器注册器到依赖注入容器 - 更新IArchitectureContext接口添加新版CQRS请求、命令、查询和通知的统一入口 - 添加架构上下文的CQRS处理器注册相关单元测试 - 配置项目文件以支持多目标框架和包引用管理
28 lines
1.1 KiB
C#
28 lines
1.1 KiB
C#
using System.Reflection;
|
|
using GFramework.Core.Abstractions.Ioc;
|
|
using GFramework.Core.Abstractions.Logging;
|
|
using GFramework.Cqrs.Abstractions.Cqrs;
|
|
|
|
namespace GFramework.Cqrs.Internal;
|
|
|
|
/// <summary>
|
|
/// 默认的 CQRS 处理器注册器实现。
|
|
/// 该适配器把容器公开的 handler 接入入口转发到现有的注册流水线,
|
|
/// 使容器主路径只依赖 <see cref="ICqrsHandlerRegistrar" /> 抽象。
|
|
/// </summary>
|
|
internal sealed class DefaultCqrsHandlerRegistrar(IIocContainer container, ILogger logger) : ICqrsHandlerRegistrar
|
|
{
|
|
private readonly IIocContainer _container = container ?? throw new ArgumentNullException(nameof(container));
|
|
private readonly ILogger _logger = logger ?? throw new ArgumentNullException(nameof(logger));
|
|
|
|
/// <summary>
|
|
/// 按当前 runtime 约定扫描并注册处理器程序集。
|
|
/// </summary>
|
|
/// <param name="assemblies">要接入的程序集集合。</param>
|
|
public void RegisterHandlers(IEnumerable<Assembly> assemblies)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(assemblies);
|
|
CqrsHandlerRegistrar.RegisterHandlers(_container, assemblies, _logger);
|
|
}
|
|
}
|