C# 如何在Blazor客户端应用程序中配置每环境appsettings.json配置?
我在blazor中有一个连接到服务器的客户端应用程序。当我在dev中的本地计算机上运行它时,服务器的主机名是dev.someurl.com 如果是live,则是live.someurl.com 我已经设置了C# 如何在Blazor客户端应用程序中配置每环境appsettings.json配置?,c#,blazor,blazor-client-side,.net-5,C#,Blazor,Blazor Client Side,.net 5,我在blazor中有一个连接到服务器的客户端应用程序。当我在dev中的本地计算机上运行它时,服务器的主机名是dev.someurl.com 如果是live,则是live.someurl.com 我已经设置了IConfiguration的注入,它自动加载appsettings.Development.json,但是我无法更改环境。文档说发布时将使用appsettings.Production.json,但事实并非如此,因为我已经在Release build下发布了它,并看到了这一点 该环境似乎是只
IConfiguration
的注入,它自动加载appsettings.Development.json,但是我无法更改环境。文档说发布时将使用appsettings.Production.json,但事实并非如此,因为我已经在Release build下发布了它,并看到了这一点
该环境似乎是只读的。使用signalr.net核心应用程序,我可以做到:
return Host.CreateDefaultBuilder(args).UseEnvironment(environmentName)
但是,对于blazor客户端应用程序,您可以做到以下几点:
var builder=WebAssemblyHostBuilder.CreateDefault(args)代码>
生成器允许您访问HostenEnvironment
,但您不能修改它
appsettings配置文件的读取是全自动的,内置有以下代码:
builder.Services.AddSingleton(provider =>
{
var config = provider.GetService<IConfiguration>();
return config;
});
builder.Services.AddSingleton(提供者=>
{
var config=provider.GetService();
返回配置;
});
你知道我该怎么做吗
作为blazor客户端应用程序,您显然可以在标题中设置环境,但我不知道如何通过编程实现这一点。欢迎想法。环境名称由/u framework/Blazor.boot.json请求的Blazor环境响应头定义。显然,您可以将其作为
放入index.html
中,但不清楚如何使其动态。如果将其放入index.html中,则它不是动态的。否则,它是.net服务器环境动态的,如中所示,当我构建项目时,我希望它根据我的配置进行设置,例如调试/发布,以便我可以轻松发布它,并让它使用不同的配置,而不是像这样工作,环境由主机定义。在我看来,在构建时定义运行环境不是一个好的实践。您应该为您的登台、UAT和/或产品部署一个发布版本。环境名称由/u framework/Blazor.boot.json请求的Blazor环境响应头定义。显然,您可以将其作为
放入index.html
中,但不清楚如何使其成为动态的。如果将其放入index.html中,则它不是动态的。否则,它是.net服务器环境动态的,如中所示,当我构建项目时,我希望它根据我的配置进行设置,例如调试/发布,以便我可以轻松发布它,并让它使用不同的配置,而不是像这样工作,环境由主机定义。在我看来,在构建时定义运行环境不是一个好的实践。您应该将发布版本部署到暂存、UAT和/或生产环境中