Service Locator
The Service Locator handles dependency injection with automatic service discovery. Mark a class with [Service] and Ascendere registers it — no manual wiring.
Lifetimes
Section titled “Lifetimes”| Lifetime | Behavior |
|---|---|
Singleton | One instance shared across the entire game (default) |
Transient | New instance created on every resolve |
Scoped | One instance per scope (e.g. per scene) |
Registering a Service
Section titled “Registering a Service”[Service]public class AudioManager : Node{ public void Play(string clip) { }}To specify a lifetime:
[Service(Lifetime.Transient)]public class MyFactory : Node { }Resolving a Service
Section titled “Resolving a Service”var audio = Services.Get<AudioManager>();audio.Play("jump");Service Dependencies
Section titled “Service Dependencies”Services can depend on other services. Ascendere resolves the full dependency graph automatically.
[Service]public class GameManager : Node{ private readonly AudioManager _audio;
public GameManager(AudioManager audio) { _audio = audio; }}