Как читать интернете.файл конфигурации in.Net Core app
Я создал API .Net Core, и я ссылался на приложение .Net framework. Указанный приложение подключается к базе данных и хранится строка подключения в web.конфигурационный файл:
string CONNSTR =ConfigurationManager.ConnectionStrings["SHOPPINGCNN"].ConnectionString;
приложение .Net Core использует appsettings.json вместо web.конфигурационный файл. Когда я запускаю API и пытаюсь использовать ссылочные ресурсы приложения, приведенный выше код будет запущен и вернет null, потому что нет интернета.файл конфигурации существует в приложении .net Core. Что? является лучшим решением для решения этой проблемы
4 ответов
для приложений .NET Core лучший способ-использовать API конфигурации. Это очень гибкий способ и, благодаря шаблону провайдеров, он позволяет использовать разные источники, а не только самые распространенные appsettings.json
файл (который, кстати, просто файл JSON и может быть назван случайным образом):
- форматы файлов (INI, JSON и XML)
- аргументы командной строки
- переменные среды
- в памяти .NET объекты
- зашифрованное хранилище ключей Azure для пользователей
- пользовательские поставщики, которые вы устанавливаете или создаете
теперь о ConfigurationManager
. Сначала .NET Core заставил забыть об этом классе - он не был реализован и поддержан, и идея заключалась в том, чтобы полностью заменить его, предоставив новый API конфигурации.
более того, реальность такова, что ASP.NET основные приложения больше не размещаются через IIS (IIS работает в основном как обратный прокси сейчас), и так web.config
уже не так полезен (за исключением редких случаев, когда необходимо определить параметры конфигурации IIS).
хотя, после того, как был предоставлен .NET Standard 2.0, это
в .net core вы можете использовать ConfigurationBuilder
для чтения appsettings.файл json.
вы можете реализовать следующее.
appsettings.образец в формате JSON
{
"option1": "value1_from_json",
"option2": 2,
"ConnectionStrings": {
"YourConnectionString": "............."
}
}
пример кода C#
static class YourClass
{
public static IConfigurationRoot Configuration;
public static string GetConnectionString()
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json");
Configuration = builder.Build();
var connectionString = Configuration["ConnectionStrings:YourConnectionString"];
}
}
в случае, если вы пропустили его - и потому, что @Zuhair, похоже, не хочет публиковать ответ - вот копия вставки их решения (я пропустил это сначала, как это было только в комментарии):
Я нашел решение. Я изменил название сети.конфиг приложение.config и я смогли получить строку подключения, используя:
поскольку приложения .Net Core размещаются самостоятельно и могут работать практически на любой платформе , они больше не размещаются на ISS. Параметры приложения .Net Core хранятся в (appsettings.json
) по умолчанию, в то время как конфигурации приложений .Net Framework хранятся в на . Для получения дополнительной информации о приложениях .Net Core вы можете прочитать конфигурация в ASP.NET ядро . В моем случае я пытался получить доступ к уровню данных сборки .Net Framework из сборки .Net Core 2.0.Для этого нет необходимости устанавливать