Blazor文档阅读 》 Fundamentals 。
ASP.NET Core Blazor configuration
BlazorWASM默认从下面设置文件中读取设置:
wwwroot/appsettings.json
wwwroot/appsettings.{ENVIRONMENT}.json
App settings configuration
appsettings.json示例:
{
"h1FontSize": "50px"
}
使用到上述参数的razor文件:
@page "/configuration-example"
@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration
<h1 style="font-size:@Configuration["h1FontSize"]">
Configuration example
</h1>
注意到@inject IConfiguration Configuration
这一行所提供的Configuration例现。
略过关于如何使用HttpClient来读取服务端的数据部分。
Memory Configuration Source
如何从内存读取数据,首先要使用到以下命名空间:
using Microsoft.Extensions.Configuration.Memory;
然后在Program.cs的Program.Main中:
var vehicleData = new Dictionary<string, string>()
{
{ "color", "blue" },
{ "type", "car" },
{ "wheels:count", "3" },
{ "wheels:brand", "Blazin" },
{ "wheels:brand:type", "rally" },
{ "wheels:year", "2008" },
};
var memoryConfig = new MemoryConfigurationSource { InitialData = vehicleData };
builder.Configuration.Add(memoryConfig);
具体使用也是通过IConfiguration。
可以使用IConfiguration.GetSection只获取配置中的某个分区:
@code {
protected override void OnInitialized()
{
var wheelsSection = Configuration.GetSection("wheels");
...
}
}
Authentication configuration
略。
Logging configuration
配置所依赖的NuGet包是:
<PackageReference Include="Microsoft.Extensions.Logging.Configuration" Version="{VERSION}" />
在appsettings.json中设置录定:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
}
添加到当前配置集中:
builder.Logging.AddConfiguration(
builder.Configuration.GetSection("Logging"));
Host builder configuration
从WebAssemblyHostBuilder.Configuration 重新加载配置,在Program.Main中加入:
var hostname = builder.Configuration["HostName"];
Cached configuration
PWA的配置更新只能在重新部署PWA的时候执行,因为:
- 用户已经缓存了配置文件
- PWA的service-worker.js以及service-worker-assets.js必须在编译的时候重建
(本篇完)