fr-*_*mli 8 c# parameters asp.net-core blazor
我需要向我的 .Net Core Blazor 项目添加另一个配置文件。其他来源(例如this)提到在 .Net core 2.2 中使用配置构建器,但由于在 3.1 中,配置作为参数传递给 Startup,据我所知,我无法将另一个配置附加到它上面。也许我看错了,但我假设作为参数传入的配置具有重要的配置属性,因此仅使用附加配置文件自行构建它似乎将这些配置属性排除在外。
例如:不起作用,但应该描绘出我正在尝试做的事情。
public Startup(IConfiguration configuration)
{
Configuration = configuration;
var builder = new ConfigurationBuilder(configuration)
.AddJsonFile("accountconstants.json", optional: true, reloadOnChange: true);
});
}
Run Code Online (Sandbox Code Playgroud)
brk*_*brk 11
您可以在Program.csie 更早的管道中而不是在Startup.cs.
例子:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostContext, config) =>
{
var env = hostContext.HostingEnvironment;
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
Run Code Online (Sandbox Code Playgroud)
您的方法应该有效,但需要一些调整。
您创建的配置需要添加到 DI 容器中。有关此内容的文档位于此处。
我也通过以下方式在 Azure Functions 和其他项目中实现了这一目标:
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IConfiguration>(provider => new ConfigurationBuilder()
.AddEnvironmentVariables()
.AddJsonFile("accountconstants.json", optional: true, reloadOnChange: true)
.Build());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4348 次 |
| 最近记录: |