Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NET内核中设置强类型配置?_C#_Asp.net Core_Configuration - Fatal编程技术网

C# 如何在ASP.NET内核中设置强类型配置?

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

并演示如何将应用程序设置映射到ASP.NET 5中的类

从第一个链接:

    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