Dependency Injection in .NET MAUI .NET MAUI uses the same Microsoft.Extensions.DependencyInjection container as ASP.NET Core. All service registration happens in MauiProgram.CreateMauiApp() on builder.Services . The container is built once at startup and is immutable thereafter. When to Use Registering services, ViewModels, and Pages in MauiProgram.cs Choosing between AddSingleton , AddTransient , and AddScoped Wiring constructor injection for Pages and ViewModels Leveraging Shell navigation to auto-resolve DI-registered Pages Registering platform-specific service implementations with
if
directives Designing interfaces for testable service layers When Not to Use XAML data-binding syntax or compiled bindings — use the maui-data-binding skill Shell route registration and query parameters — use the maui-shell-navigation skill Mocking frameworks or test runners — use standard .NET testing tools (xUnit, NUnit, MSTest) and mocking libraries (NSubstitute, Moq) Show more Installs 832 Repository dotnet/skills GitHub Stars 5.1K First Seen Apr 2, 2026 Security Audits Gen Agent Trust Hub Pass Socket Pass Snyk Pass