Как читать интернете.файл конфигурации 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.Для этого нет необходимости устанавливать