У меня есть проект ASP.NET Core 2.1, который ссылается на проект «Уровень доступа к данным» типа .NET Core Class Library.
Для доступа к данным требуется строка подключения из appsettings.json в ASPПроект .NET Core.
Я создал простой контейнер, подобный этому:
public class DatabaseConnectionString : IDatabaseConnectionString
{
private readonly string _connectionString;
public DatabaseConnectionString(string connectionString)
{
_connectionString = connectionString;
}
public string ConnectionString {
get { return _connectionString; }
set { }
}
}
В ASP.NET Core Startup.cs> ConfigureService у меня есть это:
services.AddScoped<IDatabaseConnectionString>(p => new DatabaseConnectionString(Configuration.GetConnectionString("DefaultConnection")));
Я знаю, что могу добавить IDatabaseConnectionString в конструктор контроллера в ASP.NET, чтобы получить контейнер.Но как я могу получить это, находясь в библиотеке классов?Я не хочу передавать его полностью из контроллера, и просто добавление IDatabaseConnectionString в конструктор класса в библиотеке классов не работает.
Мне, вероятно, нужен сервис, где я могу попросить создатьобъект класса, и пусть служба заполняет интерфейс конструктора правильными объектами?
Например, заполнение строки IDatabasConnectionString в этом классе:
public class UserFactory : FactoryBase
{
private readonly IDatabaseConnectionString _iDatabaseConnectionString;
public UserFactory(IDatabaseConnectionString connectionString)
{
_iDatabaseConnectionString = connectionString;
}
}