我有一个引用类库(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?
您的类库不应该知道或关心您在应用程序中处理配置的方式。你所有的Helper
类需求都是一个连接字符串,所以你应该注入它。如何提供该字符串是一个实现细节,它是应用程序域的一部分。
public class Helper
{
public Helper(string connectionString)
{
// do something with connectionString
}
}
然后,在您的应用中:
services.AddScoped(p =>
new Helper(Configuration.GetConnectionString("DefaultConnection")));