This article和this other article展示了如何将您的appsettings映射到ASP.NET 5中的类。
从第一个链接:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<AppSettings>(Configuration.GetConfigurationSection("AppSettings"));
services.AddMvc();
}
但是,我没有在Configure()
上获得services
方法。所以要么我错过了一个包,要么API已经改变了。这是什么?
我正在使用RC1。我相信这些文章都基于beta 4。
答案 0 :(得分:1)
此示例应该为您提供所需内容。我有这门课:
public class UIOptions
{
public UIOptions()
{ }
public int DefaultPageSize_SiteList { get; set; } = 10;
public int DefaultPageSize_CountryList { get; set; } = 10;
public int DefaultPageSize_StateList { get; set; } = 10;
public int DefaultPageSize_RoleList { get; set; } = 10;
public int DefaultPageSize_RoleMemberList { get; set; } = 10;
public int DefaultPageSize_UserList { get; set; } = 10;
public int DefaultPageSize_LogView { get; set; } = 10;
}
如果我想覆盖任何默认值,我可以在appsettings.json中添加:
"UIOptions": {
"DefaultPageSize_SiteList" : "5"
}
但如果我没有改变任何内容,那么appsettings.json文件中是否存在这一点无关紧要。
在创业时我有这个:
services.Configure<UIOptions>(Configuration.GetSection("UIOptions"));
在我需要注入选项的控制器中,我对
有构造函数依赖IOptions<UIOptions>
请注意,我从IOptions的.Value属性中获取了我的UIOptions实例
using Microsoft.Extensions.OptionsModel;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
public class CoreDataController : Controller
{
public CoreDataController(
IOptions<UIOptions> uiOptionsAccessor
)
{
uiOptions = uiOptionsAccessor.Value;
}
private UIOptions uiOptions;
}
答案 1 :(得分:0)
确保您使用的是Microsoft.Extensions.DependencyInjection包。软件包名称在beta8附近发生了变化