IConfiguration.GetSection 总是 return 空

IConfiguration.GetSection always return null

我在 WPF 应用程序中使用 Prism。

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

这是我的 appsettings.json

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

在我的视图模型中,我想获得这样的用户部分

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

然而用户的值为空。

Configuration.GetSection("User") 应该给你 ConfigurationSectionConfiguration["User:Name"]Configuration["User:Age"] 应该给你值。

但是为什么调用AddJsonFile时把optional参数设置为false呢?如果在输出目录中找不到 appsettings.json 文件,则应将其设置为 true 以获得异常。

确保在 Visual Studio 中将其 Build Action 设置为 Content 并将其 Copy to Output Directory 属性 设置为 Copy if newer