我正在 Azure 静态 Web 应用程序上运行 Blazor WASM 应用程序。 在我的 .NET6 C# 应用程序中,我想读取我在门户中添加的设置。 我没有使用也不想使用 appsettings.json 或 web.config。我想阅读我在门户中添加的值。
我已经读了好几天了。我找到了很多有关服务器端解决方案的页面,但我无法使用这些页面,因为我只运行客户端。
我认为我需要在程序中做一些事情。cs:
static void ConfigureServices(IServiceCollection services, string baseAddress)
{
services.AddTransient(_ => new HttpClient(new DefaultBrowserOptionsMessageHandler(new HttpClientHandler())
{
DefaultBrowserRequestCache = BrowserRequestCache.ForceCache,
DefaultBrowserRequestMode = BrowserRequestMode.Cors
})
{
BaseAddress = new Uri(baseAddress)
});
// TODO make the settings from the portal available for all pages and components
}
我不知道如何注入设置。
我想我需要在我的页面上使用它,如下所示:
@page "/"
@inject IConfiguration _configuration
<h1>Hello, world!</h1>
<p>Welcome to your new app.</p>
<p>Config: @_configuration["Foo"]</p>
<p>Env: @Environment.GetEnvironmentVariable("Foo")</p>
<SurveyPrompt Title="How is Blazor working for you?" />
请指教。
目前,应用程序设置仅适用于与 Blazor 应用程序关联的后端 API(使用 Azure 静态 Web 应用程序时)。
请参阅配置 Azure 静态 Web 应用程序的应用程序设置了解详细信息。
根据 @HariKrishnaRajoli-MT,应用程序设置仅适用于后端 API。基本上,解决方案是创建一个后端(Azure 函数),将设置返回到前端(Blazor WASM)。
实现此目的的最简单方法是使用 Azure Functions 来使用依赖项注入公开应用程序设置。使用 options 模式 使它变得非常简单。这些选项可以注入到函数中并在调用时返回。
我知道您说过您不想使用 appsettings.json,但这是我在 Blazor WASM 应用程序中读取 IConfiguration 配置的唯一方法。
我在构建管道中使用替换令牌任务来替换 appsettings.json 中特定于环境的值。
如果您坚持读取门户中的值,那么Gary Chan 的答案构建一个 API 将配置发送到客户端是我见过人们实现的一种方式。