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")
应该给你 ConfigurationSection
,Configuration["User:Name"]
和 Configuration["User:Age"]
应该给你值。
但是为什么调用AddJsonFile
时把optional
参数设置为false
呢?如果在输出目录中找不到 appsettings.json
文件,则应将其设置为 true
以获得异常。
确保在 Visual Studio 中将其 Build Action
设置为 Content
并将其 Copy to Output Directory
属性 设置为 Copy if newer
。
我在 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")
应该给你 ConfigurationSection
,Configuration["User:Name"]
和 Configuration["User:Age"]
应该给你值。
但是为什么调用AddJsonFile
时把optional
参数设置为false
呢?如果在输出目录中找不到 appsettings.json
文件,则应将其设置为 true
以获得异常。
确保在 Visual Studio 中将其 Build Action
设置为 Content
并将其 Copy to Output Directory
属性 设置为 Copy if newer
。