我需要这样一个配置,其中我们使用
appSettings.json
文件,这样我们就可以将应用程序配置值放入该文件中。之后,在应用程序的其他部分使用该配置。
我们可以在 ASP.NET Core MVC Web 应用程序或 Web API 中看到这样的示例。
我期待一个包装成方法/函数的代码,所以我可以在与.Net MAUI相关的
MauiProgram.cs
中使用该方法。
您可以看到下面的示例代码。
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
// like as -> .ConfigureAppConfiguration(typeof(MauiProgram), "appsettings.json")
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
});
builder.Logging.AddDebug();
return builder.Build();
}
您可以使用
ConfigurationManager
在 .NET MAUI 应用程序中配置设置。
首先,将 appsettings.json 文件添加到项目中作为
EmbeddedResource
。
然后,安装下面列出的两个 nuget 软件包:
[Microsoft.Extensions.Configuration.Binder](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Binder/)
[Microsoft.Extensions.Configuration.Json](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Json)
将以下内容添加到您的 MauiProgram.cs:
builder.Services.AddTransient<MainPage>();
var a = Assembly.GetExecutingAssembly();
var appSettings = $"{a.GetName().Name}.Resources.appsettings.json";
using var stream = a.GetManifestResourceStream(appSettings);
var config = new ConfigurationBuilder()
.AddJsonStream(stream)
.Build();
builder.Configuration.AddConfiguration(config);
最后但并非最不重要的一点是,在您的 MainPage.cs 上,您可以注入
IConfiguration
,如下所示:
IConfiguration configuration;
public MainPage(IConfiguration config)
{
InitializeComponent();
configuration = config;
}
private async void OnCounterClicked(object sender, EventArgs e)
{
var settings = configuration.GetRequiredSection("Settings").Get<Settings>();
}