MAUI uses Microsoft.Extensions.DependencyInjection — the same container as ASP.NET Core. Every service, ViewModel, and page is registered here.
public static class MauiProgram { public static MauiApp CreateMauiApp() { var builder = MauiApp.CreateBuilder(); builder.UseMauiApp<App>(); // HttpClient with base address builder.Services.AddHttpClient<IWeatherService, WeatherService>(c => c.BaseAddress = new Uri("https://api.weather.example.com/")); // Singleton — one instance for the app lifetime builder.Services.AddSingleton<DatabaseService>(); // Transient — fresh instance per navigation builder.Services.AddTransient<WeatherViewModel>(); builder.Services.AddTransient<WeatherPage>(); return builder.Build(); } }
public partial class WeatherPage : ContentPage { public WeatherPage(WeatherViewModel vm) { InitializeComponent(); BindingContext = vm; } }