using GFramework.Core.Abstractions.Command;
using GFramework.Core.Abstractions.Events;
using GFramework.Core.Abstractions.Ioc;
using GFramework.Core.Abstractions.Query;
using GFramework.Core.Abstractions.Rule;
namespace GFramework.Core.Abstractions.Architecture;
///
/// 架构服务接口,定义了框架核心架构所需的服务组件
///
public interface IArchitectureServices : IContextAware
{
///
/// 获取依赖注入容器
///
/// IIocContainer类型的依赖注入容器实例
IIocContainer Container { get; }
///
/// 获取类型事件系统
///
/// ITypeEventSystem类型的事件系统实例
IEventBus EventBus { get; }
///
/// 获取命令执行器
///
/// ICommandExecutor类型的命令执行器实例
ICommandExecutor CommandExecutor { get; }
///
/// 获取查询执行器
///
/// IQueryExecutor类型的查询执行器实例
IQueryExecutor QueryExecutor { get; }
///
/// 获取异步查询执行器
///
/// IAsyncQueryExecutor类型的异步查询执行器实例
IAsyncQueryExecutor AsyncQueryExecutor { get; }
///
/// 获取服务模块管理器
///
/// IServiceModuleManager类型的服务模块管理器实例
IServiceModuleManager ModuleManager { get; }
}