Инъекция в указанной библиотеке классов? - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть веб-сайт ASP.NET Core 2.1, который ссылается на библиотеку классов (DAL).Чтобы получить доступ к строке подключения из appsettings.json (проект ASP.NET), мне нужно как-то ввести конфигурацию.Я создал класс в библиотеке классов, который выглядит следующим образом:

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

Шаблон впрыска, однако, не подхватывает его, поэтому для создания класса требуется IConfigration.

Как сделатьЯ получаю доступ к appsettings.json из библиотеки классов?

1 Ответ

0 голосов
/ 18 февраля 2019

Ваша библиотека классов не должна знать или заботиться о том, как вы обрабатываете конфигурацию в вашем приложении.Все, что вам нужно для класса Helper, - это строка соединения, так что это то, что вы должны вставить в нее. То, как эта строка предоставляется, является подробностью реализации, которая является частью вашего домена приложения.

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

Затем в вашем приложении:

services.AddScoped(p =>
    new Helper(Configuration.GetConnectionString("DefaultConnection")));
...