C# 如何在ASP.NET内核中设置强类型配置?
并演示如何将应用程序设置映射到ASP.NET 5中的类 从第一个链接:C# 如何在ASP.NET内核中设置强类型配置?,c#,asp.net-core,configuration,C#,Asp.net Core,Configuration,并演示如何将应用程序设置映射到ASP.NET 5中的类 从第一个链接: public void ConfigureServices(IServiceCollection services) { services.Configure<AppSettings>(Configuration.GetConfigurationSection("AppSettings")); services.AddMvc(); } public voi
public void ConfigureServices(IServiceCollection services)
{
services.Configure<AppSettings>(Configuration.GetConfigurationSection("AppSettings"));
services.AddMvc();
}
public void配置服务(IServiceCollection服务)
{
services.Configure(Configuration.GetConfigurationSection(“AppSettings”);
services.AddMvc();
}
但是,我没有在服务上获得Configure()
方法。因此,要么我缺少一个包,要么API已经更改。是哪一个
我用的是RC1。我相信这些文章是基于beta 4的。请确保您使用的是Microsoft.Extensions.DependencyInjection软件包。软件包名称在beta8附近的某个地方发生了更改。本例应该为您提供所需的内容。我有这门课:
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文件中是否存在这些内容并不重要
在startup中,我有以下几点:
services.Configure<UIOptions>(Configuration.GetSection("UIOptions"));
services.Configure(Configuration.GetSection(“UIOptions”);
在需要注入选项的控制器中,构造函数依赖于
IOptions<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<UIOptions> uiOptionsAccessor
)
{
uiOptions = uiOptionsAccessor.Value;
}
private UIOptions uiOptions;
}
使用Microsoft.Extensions.OptionsModel;
使用Microsoft.Extensions.DependencyInjection;
使用Microsoft.Extensions.DependencyInjection.Extensions;
公共类CoreDataController:控制器
{
公共核心数据控制器(
IOPUI选项访问器
)
{
uiOptions=uiOptionsAccessor.Value;
}
私人期权;
}
非常好的示例,但我没有服务。Configure()。因此,对我来说,最重要的是要知道它工作所需的NuGet依赖项。扩展所在的命名空间是Microsoft.Extensions.DependencyInjection,它所在的包是“Microsoft.Extensions.OptionModel”:“1.0.0-rc1-final”Microsoft.Extensions.OptionModel
做到了这一点。干杯。它实际上是Microsoft.Extensions.Options Model
。