using GFramework.Core.Abstractions.architecture;
using GFramework.Core.Abstractions.command;
using GFramework.Core.Abstractions.events;
using GFramework.Core.Abstractions.ioc;
using GFramework.Core.Abstractions.query;
using GFramework.Core.command;
using GFramework.Core.events;
using GFramework.Core.ioc;
using GFramework.Core.query;
namespace GFramework.Core.architecture;
///
/// 架构服务类,提供依赖注入容器、事件系统、命令总线和查询总线等核心服务
///
public class ArchitectureServices : IArchitectureServices
{
private IArchitectureContext _context = null!;
///
/// 获取依赖注入容器
///
public IIocContainer Container { get; } = new IocContainer();
///
/// 获取类型事件系统
///
public IEventBus EventBus { get; } = new EventBus();
///
/// 获取命令总线
///
public ICommandBus CommandBus { get; } = new CommandBus();
///
/// 获取查询总线
///
public IQueryBus QueryBus { get; } = new QueryBus();
///
/// 设置架构上下文
///
/// 架构上下文对象
public void SetContext(IArchitectureContext context)
{
_context = context;
Container.SetContext(context);
}
///
/// 获取架构上下文
///
/// 架构上下文对象
public IArchitectureContext GetContext()
{
return _context;
}
}