appsettings в файле json в новом проекте библиотеки классов C#

Ну, это не должно быть так сложно, у меня есть пакет библиотеки классов (новая версия от VS2015). Поскольку в остальной части решения я ссылаюсь на.Net 4.6, я полностью удалил asp.Net5.4 из файла project.json для этой библиотеки. Я добавил пакет Configuration.Json и пакет OptionsModel, а также все зависимости. Я пытаюсь следовать некоторым фрагментам, которые я нашел на SO, но ни один из них, кажется, никуда меня не привёл

У MikesDotNetting есть хорошая статья на эту тему, но она работает только в проекте mvc6 ИЛИ в библиотеке классов, где вы можете ссылаться на MVC6, который у меня не работает. http://www.mikesdotnetting.com/article/284/asp-net-5-configuration

 public class Startup
{
    public IConfiguration Configuration { get; set; }

    public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
    {
        var builder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
            .AddJsonFile("config.json");

        Configuration = builder.Build();
    }
}

Я вижу это во многих примерах, но ConfigurationBuilder принимает массив IConfigurationProviders, а appEnv.ApplicationBasePath представляет собой строку. Поэтому, естественно, это не работает здесь.

{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=    (localdb)\\MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Connection=True;"
    },
    "AppSetting": {
      "SMSProvider": "betterSms",
      "SMSAccountUser": "sakjfbhkdfbsdkfbksdfnbkdln",
      "SMSAccountSecret": "dswkjgfhszdkfhdskfhdk",
      "SMSPhoneFrom": "+15555555555"
    }
  }
}

Я просто пытаюсь создать простой механизм доступа для доступа ко множеству настроек приложения, содержащихся в моем файле config.json.

1 ответ

Решение

Вы можете получить доступ к переменным конфигурации в вашем приложении, например:

var connString = Startup.Configuration.Get("Data:DefaultConnection:ConnectionString"); 
Другие вопросы по тегам