IConfiguration.GetSection всегда возвращает значение null - PullRequest
0 голосов
/ 06 мая 2020

Я использую Prism в своем приложении WPF.

 protected override void RegisterTypes(IContainerRegistry containerRegistry)
    {
        containerRegistry.RegisterInstance<IConfiguration>(new ConfigurationBuilder()
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
            .Build());
    }

это то, что в моих настройках приложения. json

{"User": {"Name": "ABC", "Age": 10  }}

в моей модели просмотра Я хочу получить раздел User, например это

var Configuration = Container.Resolve<IConfiguration>();
var user = Configuration.GetSection("User");

однако значение пользователя равно нулю, я знаю, что что-то не так, оцените, если кто-то может помочь

1 Ответ

0 голосов
/ 06 мая 2020

Configuration.GetSection("User") должен дать вам ConfigurationSection, а Configuration["User:Name"] и Configuration["User:Age"] должны дать вам значения.

Но почему вы устанавливаете параметр optional на false при вызове AddJsonFile? Вы должны установить его на true, чтобы получить исключение, если файл appsettings.json не найден в выходном каталоге.

Убедитесь, что вы установили его Build Action на Content и его свойство Copy to Output Directory на Copy if newer в Visual Studio.

...