我正在尝试在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文件中设置了一个断点,则可以看到其中的设置:
但是在注入AzureStorageConfig时,它为空。
public class RestaurantService : IRestaurantService
{
private AzureStorageConfig m_Config;
public RestaurantService(IOptions<AzureStorageConfig> config)
{
m_Config = config.Value;
}
}
我想我拥有这里描述的所有内容:https://weblog.west-wind.com/posts/2016/May/23/Strongly-Typed-Configuration-Settings-in-ASPNET-Core
答案 0 :(得分:2)
您的StorageConnectionString
属性具有一个internal
设置器,但是在尝试从您的public
实例进行绑定时,绑定器必须使用Configuration
才能使用该绑定器:
public class AzureStorageConfig
{
public string StorageConnectionString { get; set; }
}