如何将 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