mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-07 00:39:00 +08:00
- 实现ArchitectureContext提供系统、模型、工具等组件访问管理 - 添加CqrsDispatcher作为GFramework自有CQRS运行时分发器 - 集成Microsoft.Extensions.DependencyInjection作为IoC容器适配器 - 实现完整的命令、查询、事件处理机制 - 支持上下文感知处理器注入架构上下文 - 提供管道行为链处理机制 - 实现流式请求处理功能 - 添加服务实例缓存和优先级排序支持
27 lines
1.1 KiB
C#
27 lines
1.1 KiB
C#
using System.Reflection;
|
|
using GFramework.Core.Abstractions.Ioc;
|
|
using GFramework.Core.Abstractions.Logging;
|
|
|
|
namespace GFramework.Core.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);
|
|
}
|
|
}
|