如何在ASP.NET Core中设置强类型配置?
本文和另一篇文章展示了如何将您的appsettings映射到ASP.NET 5中的类。
从第一个链接:
public void ConfigureServices(IServiceCollection services) { services.Configure(Configuration.GetConfigurationSection("AppSettings")); services.AddMvc(); }
但是,我没有在services
上获得Configure()
方法。 所以要么我错过了一个包,要么API已经改变了。 这是什么?
我正在使用RC1。 我相信这些文章都基于beta 4。
这个例子应该可以满足您的需求。 我有这堂课:
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(Configuration.GetSection("UIOptions"));
在我需要注入选项的控制器中,我有一个构造函数依赖
IOptions
请注意,我从IOptions的.Value属性中获取了我的UIOptions实例
using Microsoft.Extensions.OptionsModel; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; public class CoreDataController : Controller { public CoreDataController( IOptions uiOptionsAccessor ) { uiOptions = uiOptionsAccessor.Value; } private UIOptions uiOptions; }
确保您使用的是Microsoft.Extensions.DependencyInjection包。 包名称在beta8附近发生了变化
- 有没有什么好的理由不在核心MVC中使用ViewComponent而不是Partial View?
- 如何在websocket请求期间validationJWT。 .net核心
- 如何在移动应用程序上进行身份validation后在.NET Core服务器上登录用户
- 如何在ASP.NET Core中将403 Forbidden响应作为IActionResult返回
- 使用多个提交建模和validation表单
- AspNet.Security.OpenIdConnect.Server。 刷新令牌
- ASP.NET核心,更改默认重定向未授权
- ASP.NET核心WebAPI安全注意事项
- 修改CookieAuthenticationOptions LoginPath OnRedirectToReturnUrl事件