using GFramework.Core.Abstractions.IoC;
using GFramework.Core.Abstractions.Lifecycle;
namespace GFramework.Core.Abstractions.Architecture;
///
/// 服务模块接口,定义了服务模块的基本契约。
/// 所有服务模块必须实现此接口,以支持注册、初始化和异步销毁功能。
///
public interface IServiceModule : IInitializable, IAsyncDestroyable
{
///
/// 获取模块的唯一名称。
///
string ModuleName { get; }
///
/// 获取模块的优先级,数值越小优先级越高。
/// 用于控制模块的注册和初始化顺序。
///
int Priority { get; }
///
/// 获取模块的启用状态。
/// 返回 true 表示模块已启用,false 表示模块被禁用。
///
bool IsEnabled { get; }
///
/// 注册模块提供的服务到依赖注入容器中。
///
/// 依赖注入容器实例,用于注册服务。
void Register(IIocContainer container);
}