我在尝试从 appsettings.json 文件获取设置时遇到问题。
我设置了一个名为:FileStorage 的本地路径。这是我的文件:
我的 appsettings.json 文件:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"FileStorage": "D:\\Temp\\Storage"
}
我的剃须刀页面:
@page "/"
@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration
<h3>Configuration</h3>
<h4>File Storage: @Configuration["FileStorage"]</h4>
我的 Program.cs 文件(服务器项目):
var builder = WebApplication.CreateBuilder(args);
builder.Configuration.SetBasePath(Directory.GetCurrentDirectory());
builder.Configuration.AddJsonFile(
"appsettings.json", optional: true,
reloadOnChange: true);
我已经尝试了很多方法,但仍然得到 FileStorage 设置的 NULL 值。
我究竟做错了什么?
首先快速说明 - Blazor WebAssembly 在浏览器沙箱中运行,并且不使用本地文件系统(您可以通过 JavaScript 和浏览器的文件系统 API,但那是另一个故事),因此您使用GetCurrentDirectory
以及您对此的任何计划FileStorage
设置需要考虑到这一点。
现在,您不需要编写任何代码来加载appsettings.json
在 Blazor WebAssembly 中 - 默认情况下会加载它,因此请删除以下代码:
builder.Configuration.SetBasePath(Directory.GetCurrentDirectory());
builder.Configuration.AddJsonFile("appsettings.json", optional: true,
reloadOnChange: true);
默认情况下应填充您的值。
如果您想检查配置是否已加载,此代码将列出所有键/值:
<article>
<h2>Configuration</h2>
<ul>
@foreach (var item in Configuration.AsEnumerable())
{
<li>@item.Key: @item.Value</li>
}
</ul>
</article>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)