#.net-core
#.net-core
Вопрос:
Почему в .Net Core мы должны использовать класс для сопоставления appsettigns.json? разве это не дополнительный код, когда мне приходится добавлять свойство внутри класса настроек каждый раз, когда я добавляю ключ конфигурации? есть ли другой способ, подобный стандартному .Net?
Комментарии:
1. Если ключ настройки используется в приложении только один раз, а сам ключ никогда не меняется, то наличие класса, вероятно, не имеет особого смысла, но наличие класса обеспечит лучшую ремонтопригодность и читаемость. С помощью class будет намного проще настроить его для целей тестирования, а затем иметь зависимость от
IConfiguration
everywhere.
Ответ №1:
Вы всегда можете использовать интерфейс IConfiguration для чтения конфигурации следующим образом
public class MyClass
{
public MyClass(IConfiguration configuration)
{
var x = configuration["setting1"];
var y = configuration["block1:setting1"];
var z = configuration["block1__setting1"];
var w = configuration.GetSection("block1")["setting1"];
}
}
Но это означает, что вы введете свою конфигурацию значков во все типы, которые зависят от нее, и все эти типы будут знакомы с именами и структурой конфигурации. Если вы будете реорганизовывать свой appsetting.json, вам нужно будет найти и исправить все эти места.