Есть ли какая-то особая причина, по которой вам нужен специальный ConnectionString
class
? Если вы просто хотите получить строку подключения, вы можете ввести IConfiguration
напрямую и просто использовать метод расширения GetConnectionString
.
public class ReportController
{
private readonly string myString;
public ReportController(IConfiguration configuration)
{
myString = configuration.GetConnectionString("DEV");
}
}
/*
appsettings.json
{
"ConnectionStrings": {
"DEV": "<Your connection string>",
"PROD": "<Your connection string>"
}
}
*/
Приятно то, что до тех пор, пока вы можете загрузить конфигурирование через систему конфигурации .NET Core
, вы можете использовать этот метод независимо от того, где хранятся строки подключения. Итак, если вы решите использовать Azure Key Vault или AWS, как предлагали другие люди, или настройки приложений. json для хранения ваших строк подключения, вы можете ввести IConfiguration
и использовать GetConnectionString
, пока есть поставщик конфигурации для хранения ваших секретов. Такой поставщик уже существует. json файлов и Azure Key Vault, я не знаю о AWS.
В одной другой заметке, вы могли бы взглянуть на Использовать несколько окружения в ASP. NET Core и используют разные параметры конфигурации для разных сред. Таким образом, вместо «DEV» и «PROD», являющихся ключами в вашей конфигурации «ConnectionStrings», вы можете использовать «Reports» или другое имя, которое описывает источник данных, к которому вы подключаетесь, и имеет другое Строка соединения для данной среды.
Например, с помощью настроек приложения. {Environment}. json files ...
public class ReportController
{
private readonly string myString;
public ReportController(IConfiguration configuration)
{
myString = configuration.GetConnectionString("Reports"); //Will give you the correct connection string based on your environment.
}
}
/*
appsettings.Production.json
{
"ConnectionStrings": {
"Reports": "<Your production connection string>",
}
}
appsettings.Development.json
{
"ConnectionStrings": {
"Reports": "<Your development connection string>"
}
}
*/