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");