Visão geral
Componentes principais
TInject: API pública (register/get/remove, logging, cache, detecção de ciclos).TInjectContainer: base com dicionários e fábrica.TInjectFactory: cria metadados (TServiceData).TServiceData: armazena classe, modo (singleton/factory) e cria instâncias via RTTI.TInjectEvents: callbacks de lifecycle e parâmetros.
Regras práticas
- Registre seus serviços durante o bootstrap (antes de múltiplas threads começarem a resolver).
- Para auto-inject, mantenha construtores simples e dependências previamente registradas.
Main building blocks
TInject: public API (register/get/remove, logging, cache, cycle detection).TInjectContainer: base class with dictionaries and factory.TInjectFactory: builds service metadata (TServiceData).TServiceData: stores lifetime and creates instances via RTTI.TInjectEvents: lifecycle hooks and constructor param provider.
Practical rules
- Register services during bootstrap (before multiple threads start resolving).
- For auto-inject, keep constructors simple and dependencies registered upfront.