我在.net Core 1.1上开始了一些基础项目, 我希望将appsettings.json中的一些属性映射到object,但我可能无法理解正确的名称约定或非常基本的东西
Regarding MSDN使用选项和配置对象部分, 它很容易使用。 我在appsettings.json
中添加了下一行{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"XXXOptions": {
"X1": {
"AppId": "11",
"AppCode": "22"
},
"X2": {
"AppId": "",
"AppCode": ""
}
}
}
我添加了自定义类
public class XXXOptions
{
public XXXOptions()
{
}
public X1 X1{ get; set; }
public X2 X2{ get; set; }
}
public class X1
{
public int AppId { get; set; }
public int AppCode { get; set; }
}
public class X2
{
public int AppId { get; set; }
public int AppCode { get; set; }
}
我将下一个代码添加到Startup.cs
public void ConfigureServices(IServiceCollection services)
{
// Adds services required for using options.
services.AddOptions();
// Register the IConfiguration instance which MyOptions binds against.
services.Configure<XXXOptions>(Configuration);
// Add framework services.
services.AddMvc();
}
public class XXXController : Controller
{
private readonly XXXOptions _options;
public XXXController(IOptions<XXXOptions> optionsAccessor)
{
_options = optionsAccessor.Value;
}
public IActionResult Index()
{
var option1 = _options.X1;
return Content($"option1 = {option1.AppCode}, option2 = {option1.AppId}");
return View();
}
}
optionsAccessor.Value - 值包含XXXController构造函数中的空值。
但似乎框架在 Configuration 属性中的JsonConfigurationProvider中显示mappet值
任何想法?
答案 0 :(得分:2)
在ConfigureServices
方法更改:
services.Configure<XXXOptions>(Configuration);
到
services.Configure<XXXOptions>(Configuration.GetSection("XXXOptions"));