.net core 如何将配置转换为IOptions?

.net core 如何将配置转换为IOptions?,.net-core,configuration,options,appsettings,.net-core-2.2,.net Core,Configuration,Options,Appsettings,.net Core 2.2,我读过很多关于这方面的文章,但它们似乎都错过了关键时刻,确切地说,就是将IConfiguration对象转换为其强大的类型配置对象的时刻,所以它看起来很神奇 在我的.NET核心项目(NUnit测试项目)中,我有appsettings.json: { "Configuration": { "HomePageUrl": "https://homepage.com" } } 我在所有测试之前加载它: [BeforeTestRun] public static void LoadCon

我读过很多关于这方面的文章,但它们似乎都错过了关键时刻,确切地说,就是将
IConfiguration
对象转换为
其强大的类型配置
对象的时刻,所以它看起来很神奇

在我的.NET核心项目(NUnit测试项目)中,我有
appsettings.json

{
  "Configuration": {
    "HomePageUrl": "https://homepage.com"
  }
}
我在所有测试之前加载它:

[BeforeTestRun]
public static void LoadConfiguration()
{
    IConfiguration config = new ConfigurationBuilder()
                            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                            .Build();
}
问题:但如何将其转换为具有字符串属性的强类型对象
HomePageUrl

编辑:

我尝试:

IConfiguration config = new ConfigurationBuilder()
                                    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                                    .Build();
            config.GetSection("").Bind

但是我没有绑定方法。

模型绑定的语法已从RC1更改为RC2

您需要在Startup.cs的ConfigureServices方法中将设置类绑定到所需的配置:

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<MySettings>(options => Configuration.GetSection("MySettings").Bind(options));
}
public void配置服务(IServiceCollection服务)
{
services.Configure(options=>Configuration.GetSection(“MySettings”).Bind(options));
}

我知道我能做到,问题是关于强类型的
IOptions
。请原谅我的误解。请参阅更新的答案。