Sye*_*yed 8 c# configuration-files asp.net-core
我想从 .Net 核心中间件中循环的文件夹中加载多个配置文件。
我知道我们可以通过命名他们像appSettings.json中放入一个或多个配置文件所提到这里
但是在我的情况下,如果我有多个配置文件夹,并且每个文件夹都有多个要初始加载的配置文件。如果我开始命名要加载的每个文件夹中的每个文件,那将是很多行和混乱。我希望循环加载所有配置文件夹。
请询问是否需要更多信息。谢谢
Kir*_*kin 10
您可以使用类似 Directory.EnumerateFiles和来实现这一点ConfigureAppConfiguration。下面是一个示例:
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureAppConfiguration(configurationBuilder =>
{
foreach (var jsonFilename in Directory.EnumerateFiles("/path/to/jsons", "*.json", SearchOption.AllDirectories))
configurationBuilder.AddJsonFile(jsonFilename);
})
.Build();
Run Code Online (Sandbox Code Playgroud)
调用ConfigureAppConfiguration允许向配置系统添加额外的提供者。在这里,我们只是添加在/path/to/jsons目录(和子目录)中找到的所有 *.json 文件作为附加配置源。
小智 5
好吧,我必须使用 ConfigurationBuilder 类的扩展方法来解决它。希望对有需要的人有所帮助。
public static IConfigurationBuilder AddMultipleJsonFiles(this IConfigurationBuilder configurationBuilder, string path, string prefix)
{
string[] files = System.IO.Directory.GetFiles(path, prefix + "-*.json");
foreach (var item in files)
{
configurationBuilder.AddJsonFile(item);
}
return configurationBuilder;
}
Run Code Online (Sandbox Code Playgroud)
并且;
var builder = new ConfigurationBuilder().AddMultipleJsonFiles(Directory.GetCurrentDirectory()+ "/Configurations/", "service");
_configuration = builder.Build();
Run Code Online (Sandbox Code Playgroud)
小智 5
我正在使用 .NET 6 开发 ASP.NET Core Web 应用程序 MVC 和 API。没有startup.cs,但有program.cs。因此,我尝试添加builder.Configuration.AddJsonFile("myJsonFile.json"),它对我有用。
在程序.cs中,
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllersWithViews();
builder.Configuration.AddJsonFile("myJsonFile.json");
var app = builder.Build();
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8933 次 |
| 最近记录: |