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

MAUI项目中存储应用配置值的标准方式是什么?

MAUI集中式配置管理的标准实现方法

一、创建JSON配置文件

在MAUI项目根目录新建appsettings.json文件,右键文件设置属性:

  • 生成操作选择内容
  • 复制到输出目录选择如果较新则复制

配置文件示例内容:

{
  "AppSettings": {
    "PageSize": 20,
    "ApiBaseUrl": "https://api.example.com",
    "EnableDebugLogs": true
  }
}

二、定义配置模型类

新建Models/AppSettings.cs文件,对应JSON结构创建强类型模型:

public class AppSettings
{
    public int PageSize { get; set; }
    public string ApiBaseUrl { get; set; } = string.Empty;
    public bool EnableDebugLogs { get; set; }
}

三、集成配置到依赖注入

在MauiProgram.cs中加载配置并注册到服务容器:

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

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

// 加载appsettings.json配置文件
builder.Configuration.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);

// 绑定配置到模型并注册为单例服务
builder.Services.Configure<AppSettings>(builder.Configuration.GetSection("AppSettings"));

var app = builder.Build();
app.Run();

四、在业务代码中使用配置

通过构造函数注入IOptions<AppSettings>来获取配置值,比如在ViewModel中:

using Microsoft.Extensions.Options;

public class SearchPageViewModel
{
    private readonly int _pageSize;

    public SearchPageViewModel(IOptions<AppSettings> appSettings)
    {
        _pageSize = appSettings.Value.PageSize;
        // 直接使用_pageSize作为每页搜索结果数量
    }
}

额外说明

  • 支持环境差异化配置:可以创建appsettings.Development.json、appsettings.Production.json等同名不同后缀的文件,MAUI会根据当前运行环境自动加载对应配置(优先级高于基础配置)
  • 配置热重载:AddJsonFile方法中设置reloadOnChange: true后,修改配置文件无需重启应用即可生效(部分场景需手动监听配置变更事件)
  • XAML中使用:可将配置值暴露为ViewModel的公共属性,直接在XAML中绑定使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 04:55:55