.Net Core 3.1将额外的config.json文件添加到启动中的配置参数中



我需要向我的.Net Core Blazor项目添加另一个配置文件。其他来源(如本文(提到在.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);
});
}

您可以在Program.cs中执行,即在管道中的早期执行,而不是在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>();
});
}

您的方法应该有效,但需要进行一些调整。

您创建的配置需要添加到DI容器中。这方面的文档在这里。

我在Azure功能和其他项目中也通过以下方式实现了这一点:

public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IConfiguration>(provider => new ConfigurationBuilder()
.AddEnvironmentVariables()
.AddJsonFile("accountconstants.json", optional: true, reloadOnChange: true)
.Build());
}

相关内容

  • 没有找到相关文章

最新更新