A zero-setup, dependency-graph-aware dependency injection framework for UnityA zero-setup, dependency-graph-aware dependency injection framework for Unity MonoBehaviours. Inspired by CDI/Spring-style bean lifecycles, adapted for Unity's component model — and fully self-wiring, with no container prefab or scene setup of any kind.Zero setup, automagic wiring — any DiMonoBehaviour present in a loaded scene is automatically discovered and booted on startup. No container prefab to add, no parenting requirement, nothing to drag into a scene.[Inject] field injection — declare dependencies as fields, no manual wiring. Works across inheritance: fields declared on a base service class are found too.Interface binding — [Inject] private IFoo _foo; resolves automatically to whichever DiMonoBehaviour implements IFoo. No manual Bind() setup.ServiceLocator — a static registry for locating any active service by class or interface from anywhere (UI scripts, plain MonoBehaviours, editor tooling), for the cases where [Inject] isn't convenient.Automatic topological boot order — services are initialized only after their dependencies are fully Ready.Async initialization — OnInitialize() returns a Task, so services can await asset loads, network calls, saves, etc. before reporting readiness.Circular dependency detection — misconfigured graphs fail fast with a clear exception instead of silently deadlocking.Immediate cleanup — destroying a service GameObject unregisters it right away instead of leaving a stale reference until the next scene unload.Build-safe — ships a link.xml for its own assembly, plus an Editor build step that auto-generates a link.xml preserving your project's own DiMonoBehaviour services from IL2CPP/Mono managed code stripping (see AOT/IL2CPP safety).Zero external dependencies — pure C#/UnityEngine, no third-party packages required.Writing tests, generating images and documentation




