(instance: T, container: ServiceContainer)
| 249 | * @param container 服务容器 |
| 250 | */ |
| 251 | export function injectProperties<T extends object>(instance: T, container: ServiceContainer): void { |
| 252 | const constructor = (instance as { constructor: Constructor }).constructor; |
| 253 | const metadata = getInjectableMetadata(constructor); |
| 254 | |
| 255 | if (!metadata?.properties || metadata.properties.size === 0) { |
| 256 | return; |
| 257 | } |
| 258 | |
| 259 | for (const [propertyKey, serviceType] of metadata.properties) { |
| 260 | const service = container.resolve(serviceType); |
| 261 | |
| 262 | if (service !== null) { |
| 263 | (instance as Record<string | symbol, unknown>)[propertyKey] = service; |
| 264 | } |
| 265 | } |
| 266 | } |
| 267 | |
| 268 | /** |
| 269 | * 检查类是否标记为可更新 |
no test coverage detected