在引用的类库中注入?

问题描述 投票:0回答:1

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

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

然而,注入模式确实没有提到它,因此它需要IConfigration来创建类。

如何从类库中访问appsettings.json?

c# .net asp.net-core code-injection
1个回答
2
投票

您的类库不应该知道或关心您在应用程序中处理配置的方式。你所有的Helper类需求都是一个连接字符串,所以你应该注入它。如何提供该字符串是一个实现细节,它是应用程序域的一部分。

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

然后,在您的应用中:

services.AddScoped(p =>
    new Helper(Configuration.GetConnectionString("DefaultConnection")));
© www.soinside.com 2019 - 2024. All rights reserved.