import { IInstantiationService, ServiceCollection, IContainerService, BrandedService, ServiceIdentifier, SyncDescriptor } from '@zk-tech/bedrock/di'; /** 【动态依赖服务】 支持为子容器创建一块动态依赖的构建空间. 动态创建出来的服务可以依赖到自身的静态依赖服务, 反之不被允许。 子容器可以借助动态层完成一些【多容器间公共依赖】的抽离.可以理解为为了减少静态依赖图在多层设计应用时过于繁琐的一种简化手段. ----------------------------- | InstantiationService | ----------------------------- ↑ lookup service ↑ ----------------------------- | DynamicDependencyService | ----------------------------- ↑ lookup service ↑ ----------------------------- | ChildContainerService | ----------------------------- */ interface IDynamicDependencyService extends IInstantiationService { readonly _serviceBrand: undefined; /** * 创建子容器 */ createChild: (services: ServiceCollection) => IContainerService; /** * 动态注册 service * 重复注册会抛弃后面的服务 * */ register: (id: ServiceIdentifier, ctorOrDescriptor: { new (...services: Services): T; } | SyncDescriptor) => void; /** * containerService支持销毁,子containerService都会进行dispose */ dispose: () => void; } declare const IDynamicDependencyService: ServiceIdentifier; export { IDynamicDependencyService as I };