класс запуска добавить контекст БД с зашифрованной строкой - PullRequest
0 голосов
/ 24 декабря 2018

в моем приложении .net core 2.2 я пытаюсь создать контекст БД, используя следующий код в методе startup.cs ConfigureServices: '

var connectionString = Configuration.GetSection("Appsettings")["MyConnectionString"];

services.AddDbContext<MyDbContext>(options => options.UseSqlServer(connectionString));

моя строка подключения в appsettings зашифрована, поэтомуКак мне заставить мой код работать правильно.

У меня есть класс обслуживания, который не является статическим или не содержит статических методов. Есть метод Decrypt.Поэтому я не могу в файле startup.cs вызвать MyService.Decrypt (connectionString).

Альтернативой, которую я мог бы подумать, было бы сделать что-то вроде

var myService = new MyService();
var decrypted = myService.Decrypt(connectionString);

Но MyService имеет свои собственные зависимости, которые я бы затемнужно перейти в конструктор.

Я не был уверен, есть ли альтернативный способ сделать это.

1 Ответ

0 голосов
/ 24 декабря 2018

Класс StartUp может быть введен с зависимостями.Вы можете сделать что-то вроде этого:

private IConfiguration _configuration;
  public Startup(IConfiguration configuration)
    {
        _configuration = configuration;
    }

Подать заявку так:

public void ConfigureServices(IServiceCollection services)
{
string theEncryptedOne =_configuration.GetConnectionString("MyConnectionString");
string decrypted =//Do something with the encrypted string. 
//Pass it when done.
services.AddDbContext<MyDbContext>(option=>option.UseSqlServer(decryptedString));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...