Parent : [[INDEX-DEV-GENERAL]]
WPF AppServices — composition root léger
Problème
App WPF multi-pages a besoin d'état partagé (catalog, engine, snapshots) sans installer un DI container complet.
Solution
Singleton AppServices.Current initialisé une fois dans App.OnStartup. Pages lisent les services via AppServices.Current. App.OnExit dispose ressources longues durée (Boost.Dispose()).
Exemple
public static class AppServices {
public static AppServices Current { get; private set; }
public TweakEngine Tweaks { get; }
public SnapshotStore Snapshots { get; }
public static void Initialize() { Current = new AppServices(); }
}
Source projet
GameTune/AppServices.csGameTune/App.xaml.cs