在引用的类库中注入?

时间:2019-02-18 20:44:56

标签: c# .net asp.net-core code-injection

我有一个ASP.NET Core 2.1网站,该网站引用了类库(DAL)。要从appsettings.json(ASP.NET项目)访问连接字符串,我需要以某种方式注入配置。我在类库中创建了一个如下所示的类:

    public class Helper
{
    IConfiguration Configuration;
    public Helper(IConfiguration configuration)
    {
        Configuration = configuration;
    }
    public string GetConnectionString(string name)
    {
        return Configuration.GetConnectionString("DefaultConnection");
    }
}

但是注入模式不会解决这个问题,因此需要IConfigration来创建类。

如何从类库访问appsettings.json?

1 个答案:

答案 0 :(得分:2)

您的类库应该不知道或不在乎您如何处理应用程序中的配置。您的Helper类所需要的只是一个连接字符串,因此您应该在其中输入内容。 如何提供该字符串是您应用程序域中一部分的实现细节。

public class Helper
{
     public Helper(string connectionString)
     {
          // do something with connectionString
     }
}

然后,在您的应用中:

services.AddScoped(p =>
    new Helper(Configuration.GetConnectionString("DefaultConnection")));