如何在 ASP.NET Core 中设置强类型配置?
How to set up strongly typed configuration in ASP.NET Core?
This article and this other article 显示如何将您的应用程序设置映射到 ASP.NET 中的 class 5.
从第一个link开始:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<AppSettings>(Configuration.GetConfigurationSection("AppSettings"));
services.AddMvc();
}
但是,我没有在 services
上获得 Configure()
方法。所以要么我丢失了一个包裹,要么 API 已经改变了。是哪个?
我正在使用 RC1。我相信这些文章是基于 beta 4 的。
确保您使用的是 Microsoft.Extensions.DependencyInjection 包。软件包名称在 beta8
左右发生了变化
这个例子应该能满足您的需求。我有这个 class:
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;
}
This article and this other article 显示如何将您的应用程序设置映射到 ASP.NET 中的 class 5.
从第一个link开始:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<AppSettings>(Configuration.GetConfigurationSection("AppSettings"));
services.AddMvc();
}
但是,我没有在 services
上获得 Configure()
方法。所以要么我丢失了一个包裹,要么 API 已经改变了。是哪个?
我正在使用 RC1。我相信这些文章是基于 beta 4 的。
确保您使用的是 Microsoft.Extensions.DependencyInjection 包。软件包名称在 beta8
左右发生了变化这个例子应该能满足您的需求。我有这个 class:
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;
}