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类型的命令执行器实例
public ICommandExecutor CommandExecutor { get; }
///
/// 获取查询执行器
///
/// IQueryExecutor类型的查询执行器实例
public IQueryExecutor QueryExecutor { get; }
///
/// 获取异步查询执行器
///
/// IAsyncQueryExecutor类型的异步查询执行器实例
public IAsyncQueryExecutor AsyncQueryExecutor { get; }
}