Pular para o conteúdo principal

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.