7.5在 MAUI 应用中使用

创建于 2026 年 8 月 21 日约 1 分钟读完

.NET MAUI 内置了基于 Microsoft.Extensions.DependencyInjection 的依赖注入支持:在应用入口 MauiProgram.CreateMauiApp() 方法中向 builder.Services 注册服务,随后即可在页面(Page)或视图模型(ViewModel)的构造函数中注入使用。更多依赖注入细节(注册方式、服务生存期等)请参阅微软官方文档「依赖注入(.NET MAUI)」。

1. 在 MauiProgram.cs 中注册服务

MauiProgram.cs 文件的 CreateMauiApp() 方法中调用 AddHttpRemote() 注册 HTTP 远程请求服务:

cs
using HttpAgent;public static class MauiProgram{    public static MauiApp CreateMauiApp()    {        var builder = MauiApp.CreateBuilder();        builder            .UseMauiApp<App>()            .ConfigureFonts(fonts =>            {                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");                fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");            });        builder.Services.AddHttpRemote();   // 注册 HTTP 远程请求服务        return builder.Build();    }}

2. 在页面中注入使用

在页面(或视图模型)的构造函数中注入 IHttpRemoteService 即可发送 HTTP 远程请求:

cs
using HttpAgent;public partial class MainPage : ContentPage{    private readonly IHttpRemoteService _httpRemoteService;    public MainPage(IHttpRemoteService httpRemoteService)    {        InitializeComponent();        _httpRemoteService = httpRemoteService;    }    private async Task LoadContentAsync()    {        var result = await _httpRemoteService.GetAsStringAsync("https://furion.net/");        // 渲染 result ...    }}

说明:在 Shell 应用中,如果页面构造函数需要依赖注入,请同时把页面注册到容器(如 builder.Services.AddTransient<MainPage>();),Shell 导航时会自动从容器解析页面实例;也可以把 IHttpRemoteService 注入到已注册的视图模型中,再由页面注入该视图模型。