ASP.NET Core 3.1 在 class 库中获取连接字符串
ASP.NET Core 3.1 get connection string in class library
我很困惑。我将解决方案重构为两个项目;一个网络和一个 DAL。我正在尝试遵循 DI 的原则,但我不知道如何连接到 DAL。
这是我目前的情况:
在网络项目中:
public void ConfigureServices(IServiceCollection services)
{
// connection string
var connectionString = new ConnectionString(Configuration.GetConnectionString("connectionstringfromappsettings"));
services.AddSingleton(connectionString);
...
}
Class在web项目中获取值
public sealed class ConnectionString
{
public ConnectionString(string value) => Value = value;
public string Value { get; }
}
Class 在 DAL 存储库中,我不确定如何获取配置:
public class ContactRepo : IContactRepository
{
private readonly ConnectionString _connectionString;
public ContactRepo(ConnectionString connectionString)
{
_connectionString = connectionString;
}
...
}
提前感谢您的帮助。
我在 WWW 项目中有 class ConnectionString。
我的错:
这 post 帮助我走了一段路。
我认为你应该研究 google 上的控制反转 (IOC)。如需更深入的信息,您应该查看 Castle Windsor 和 Ninject 包。
您正在将您的配置映射到位于主 Web 应用程序(您称为 WWW 项目)上的 ConnectionString 对象。正如预期的那样,您具有从 Web 项目到 DAL class 库的依赖性。您不能从 DAL 项目调用主应用程序中的 classes。您可以在 DAL 项目或两个项目都依赖的其他层找到您的 ConnectionString。此外,您可以直接调用 Configuration.GetSection(..)... 当 Configuration 是 IConfiguration.
的注入实例时
我很困惑。我将解决方案重构为两个项目;一个网络和一个 DAL。我正在尝试遵循 DI 的原则,但我不知道如何连接到 DAL。
这是我目前的情况:
在网络项目中:
public void ConfigureServices(IServiceCollection services)
{
// connection string
var connectionString = new ConnectionString(Configuration.GetConnectionString("connectionstringfromappsettings"));
services.AddSingleton(connectionString);
...
}
Class在web项目中获取值
public sealed class ConnectionString
{
public ConnectionString(string value) => Value = value;
public string Value { get; }
}
Class 在 DAL 存储库中,我不确定如何获取配置:
public class ContactRepo : IContactRepository
{
private readonly ConnectionString _connectionString;
public ContactRepo(ConnectionString connectionString)
{
_connectionString = connectionString;
}
...
}
提前感谢您的帮助。
我在 WWW 项目中有 class ConnectionString。
我的错: 这 post 帮助我走了一段路。
我认为你应该研究 google 上的控制反转 (IOC)。如需更深入的信息,您应该查看 Castle Windsor 和 Ninject 包。
您正在将您的配置映射到位于主 Web 应用程序(您称为 WWW 项目)上的 ConnectionString 对象。正如预期的那样,您具有从 Web 项目到 DAL class 库的依赖性。您不能从 DAL 项目调用主应用程序中的 classes。您可以在 DAL 项目或两个项目都依赖的其他层找到您的 ConnectionString。此外,您可以直接调用 Configuration.GetSection(..)... 当 Configuration 是 IConfiguration.
的注入实例时