秘密经理交叉图书馆

时间:2016-12-12 00:10:28

标签: c# console-application .net-core

我正在使用.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;

这种方法是否正确或有最简单的方法吗?

1 个答案:

答案 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);