{"repo":"alexanderlarsen/Saneject","free":true,"listed":false,"github":"https://github.com/alexanderlarsen/Saneject","clone":"git clone https://github.com/alexanderlarsen/Saneject.git","description":"Dependency injection the Unity way","language":"C#","stars":92,"topics":["dependency-injection","unity","unity3d","saneject","di","unity-editor","unity-inspector","unity-tools","serialized-interfaces"],"license":"MIT","category":"game-templates","readme_excerpt":"Dependency injection the Unity way. Inject dependencies in the Unity Editor, not Play Mode, by writing them directly into serialized fields at edit-time using familiar DI APIs, so everything stays visible in the Inspector, including interfaces. No runtime container. No startup cost. No hidden wiring. No weird lifecycles. Just simple, deterministic edit-time DI that works with Unity, not around it. Mental model 1. Mark your fields, properties and methods with [Inject] . 2. Create a Scope that binds dependencies for [Inject] members, and add it to a scene or prefab. 3. Click Inject in the Unity Editor. 4. Dependencies are injected into serialized fields. 5. Start the game and enjoy fast startup with Unity’s normal lifecycle. Slide overview A quick visual tour of how Saneject works, how editor-time DI differs from runtime DI, its core features, benefits, APIs, and examples. Open the full slide overview Main features Feature Description -------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------- Editor-time injection Resolve dependencies in the editor and store them as normal serialized references. Inspector-visible wiring Keep dependencies, including interfaces, visible and editable in the Inspector instead of hiding them behind a runtime container. Fluent binding API Declare bindings in Scope components with familiar DI-style syntax. Serialized interfaces Use [Serializ","default_branch":null,"files":null,"tree":[],"storefront":"/r/alexanderlarsen","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/alexanderlarsen/Saneject/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}