【发布时间】:2017-03-19 17:43:04
【问题描述】:
我在 .net Core 1.1 上开始了一些基本项目, 我希望将 appsettings.json 中的一些属性映射到对象,但我可能无法理解正确的名称约定或一些非常基本的东西
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 - Value 在 XXXController 构造函数中包含空值。
但似乎框架在 Configuration 属性内的 JsonConfigurationProvider 处显示 mappet 值
有什么想法吗?
【问题讨论】:
标签: c# asp.net-core