如何将 appsettings.json 部分转换为对象?
How can I convert my appsettings.json section to an object?
我有一个 appsettings.json 看起来像这样:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"SearchExclusions": {
"Classifications": {
"title": "My First Title",
"entries": [ "ALPHA", "BETA" ]
},
"SubjectContains": {
"title": "My Second Title",
"entries": [ "GAMMA", "DELTA", "EPSILON", "ZETA", "ETA", "THETA", "IOTA", "KAPPA" ]
}
}
}
我的 .RAZOR 组件如下所示:
@inject IConfiguration Configuration
<h1> My Component </h1>
@code {
protected override void OnInitialized()
{
// This does not work.
var searchExclusionsObject = Configuration.GetSection("SearchExclusions").Get<SearchExclusions>();
// This also does not work.
var searchExclusionsObject = Configuration.Get<SearchExclusions>();
}
private class SearchExclusions
{
private Classifications classifications { get; set; }
private SubjectContains subjectContains { get; set; }
}
private class Classifications
{
private String title { get; set; }
private String[] entries { get; set; }
}
private class SubjectContains
{
private String title { get; set; }
private String[] entries { get; set; }
}
}
您在 SearchExclusions 和其他子项 类 上的所有属性都是私有的,它们需要 public。
当然,只是您的属性的可访问性需要从私有更改为 Public
我有一个 appsettings.json 看起来像这样:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"SearchExclusions": {
"Classifications": {
"title": "My First Title",
"entries": [ "ALPHA", "BETA" ]
},
"SubjectContains": {
"title": "My Second Title",
"entries": [ "GAMMA", "DELTA", "EPSILON", "ZETA", "ETA", "THETA", "IOTA", "KAPPA" ]
}
}
}
我的 .RAZOR 组件如下所示:
@inject IConfiguration Configuration
<h1> My Component </h1>
@code {
protected override void OnInitialized()
{
// This does not work.
var searchExclusionsObject = Configuration.GetSection("SearchExclusions").Get<SearchExclusions>();
// This also does not work.
var searchExclusionsObject = Configuration.Get<SearchExclusions>();
}
private class SearchExclusions
{
private Classifications classifications { get; set; }
private SubjectContains subjectContains { get; set; }
}
private class Classifications
{
private String title { get; set; }
private String[] entries { get; set; }
}
private class SubjectContains
{
private String title { get; set; }
private String[] entries { get; set; }
}
}
您在 SearchExclusions 和其他子项 类 上的所有属性都是私有的,它们需要 public。
当然,只是您的属性的可访问性需要从私有更改为 Public