You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET MAUI的Blazor Server变体中注入IConfiguration?

在.NET MAUI Blazor Server中注入IConfiguration的实现方法

步骤1:准备配置文件

确保项目根目录下存在appsettings.json文件,右键该文件,设置复制到输出目录为「如果较新则复制」。示例配置内容:

{
  "ApiSettings": {
    "BaseUrl": "https://example.com/api"
  },
  "AppTitle": "MAUI Blazor Demo"
}

步骤2:在MauiProgram.cs中构建并注册配置

修改MauiProgram.cs,构建IConfiguration实例并将其注册到服务容器:

var builder = MauiApp.CreateBuilder();
builder
    .UseMauiApp<App>()
    .ConfigureFonts(fonts =>
    {
        fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
    });

// 构建配置对象,支持多源加载
var configuration = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
    .AddEnvironmentVariables() // 可选:加载环境变量配置
    // 可选:添加用户机密(仅开发环境)
    // .AddUserSecrets<Program>()
    .Build();

// 将IConfiguration注册为单例服务
builder.Services.AddSingleton<IConfiguration>(configuration);

// 保留Blazor相关服务配置
builder.Services.AddMauiBlazorWebView();
#if DEBUG
builder.Services.AddBlazorWebViewDeveloperTools();
#endif

builder.Services.AddSingleton<WeatherForecastService>();

return builder.Build();

步骤3:在Blazor组件或服务中注入使用

  • Blazor组件中使用:
@inject IConfiguration Configuration

<h1>@Configuration["AppTitle"]</h1>
<p>API地址:@Configuration["ApiSettings:BaseUrl"]</p>
  • 后台服务中使用:
public class ApiService
{
    private readonly IConfiguration _config;

    public ApiService(IConfiguration config)
    {
        _config = config;
    }

    public string GetApiBaseUrl()
    {
        return _config["ApiSettings:BaseUrl"] ?? string.Empty;
    }
}

注意事项

  • 若需区分开发/生产环境,可添加appsettings.Development.json,并通过AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true)加载对应环境配置。
  • 确保配置文件路径正确,MAUI项目默认读取根目录下的配置文件。

内容的提问来源于stack exchange,提问作者Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 23:48:24