我正在使用.Net Core控制台应用程序和秘密管理器。问题是我需要将ConfigurationRoot(例如connectionString)中包含的一些数据传递给库。我所做的是使用静态字段在库上创建一个类,并在我的控制台应用程序上填充它:
库:
public class MyLibrary
{
public static IConfigurationRoot Config;
}
控制台应用:
var builder = new ConfigurationBuilder()
.SetBasePath(PlatformServices.Default.Application.ApplicationBasePath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddUserSecrets()
.AddEnvironmentVariables();
MyLibrary.Config = Configuration;
这种方法是否正确或有最简单的方法吗?
答案 0 :(得分:0)
您正在采取适当的方法在应用程序启动时加载appSettings.json。
也许你可以这样做构造函数注入:
public class MyLibrary
{
private IConfigurationRoot _config;
public MyLibrary(IConfigurationRoot config)
{
_config = config;
}
}
在您的Main()...
中var builder = new ConfigurationBuilder()
.SetBasePath(PlatformServices.Default.Application.ApplicationBasePath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddUserSecrets()
.AddEnvironmentVariables();
var config = builder.Build();
MyLibrary lib = new MyLibrary(config);