在引用的 class 库中注入?
Injection in a referenced class library?
我有一个 ASP.NET Core 2.1 网站引用了一个 class 库 (DAL)。要从 appsettings.json(ASP.NET 项目) 访问连接字符串,我需要以某种方式注入配置。我在 class 库中创建了一个 class,如下所示:
public class Helper
{
IConfiguration Configuration;
public Helper(IConfiguration configuration)
{
Configuration = configuration;
}
public string GetConnectionString(string name)
{
return Configuration.GetConnectionString("DefaultConnection");
}
}
然而,注入模式没有选择它,因此它需要一个 IConfigration 来创建 class。
如何从 class 图书馆访问 appsettings.json?
您的 class 库不应该知道或关心您如何处理应用程序中的配置。您 Helper
class 需要的只是一个连接字符串,因此您应该将其注入其中。 如何提供该字符串是一个实施细节,它是您的应用程序域的一部分。
public class Helper
{
public Helper(string connectionString)
{
// do something with connectionString
}
}
然后,在您的应用中:
services.AddScoped(p =>
new Helper(Configuration.GetConnectionString("DefaultConnection")));
我有一个 ASP.NET Core 2.1 网站引用了一个 class 库 (DAL)。要从 appsettings.json(ASP.NET 项目) 访问连接字符串,我需要以某种方式注入配置。我在 class 库中创建了一个 class,如下所示:
public class Helper
{
IConfiguration Configuration;
public Helper(IConfiguration configuration)
{
Configuration = configuration;
}
public string GetConnectionString(string name)
{
return Configuration.GetConnectionString("DefaultConnection");
}
}
然而,注入模式没有选择它,因此它需要一个 IConfigration 来创建 class。
如何从 class 图书馆访问 appsettings.json?
您的 class 库不应该知道或关心您如何处理应用程序中的配置。您 Helper
class 需要的只是一个连接字符串,因此您应该将其注入其中。 如何提供该字符串是一个实施细节,它是您的应用程序域的一部分。
public class Helper
{
public Helper(string connectionString)
{
// do something with connectionString
}
}
然后,在您的应用中:
services.AddScoped(p =>
new Helper(Configuration.GetConnectionString("DefaultConnection")));