未映射强类型配置设置

时间:2018-10-11 17:59:25

标签: c# asp.net-core

我正在尝试在ASP.NET Core 2.1应用程序中设置强类型配置设置。

在我的startup.cs文件中,我有以下代码:

services.Configure<AzureStorageConfig>(Configuration.GetSection("AzureStorageConfig"));

我的设置类AzureStorageConfig看起来像这样:

public class AzureStorageConfig
{
    public string StorageConnectionString { get; internal set; }
}

我的appSetting.json:

{
 "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
        "Default": "Debug",
        "System": "Information",
        "Microsoft": "Information"
    }
 },
 "AzureStorageConfig": {
    "StorageConnectionString": "UseDevelopmentStorage=true"
 }
}

运行代码时,我的AzureStorageConfig.StorageConnectionString始终为null。

如果我在startup.cs文件中设置了一个断点,则可以看到其中的设置:

enter image description here

但是在注入AzureStorageConfig时,它为空。

public class RestaurantService : IRestaurantService
{
    private AzureStorageConfig m_Config;

    public RestaurantService(IOptions<AzureStorageConfig> config)
    {
        m_Config = config.Value;
    }
}

enter image description here

我想我拥有这里描述的所有内容:https://weblog.west-wind.com/posts/2016/May/23/Strongly-Typed-Configuration-Settings-in-ASPNET-Core

1 个答案:

答案 0 :(得分:2)

您的StorageConnectionString属性具有一个internal设置器,但是在尝试从您的public实例进行绑定时,绑定器必须使用Configuration才能使用该绑定器:

public class AzureStorageConfig
{
    public string StorageConnectionString { get; set; }
}