如何将配置转换为IOptions?

时间:2019-10-18 08:54:52

标签: .net-core configuration options appsettings .net-core-2.2

我已经阅读了很多有关此的文章,但是它们似乎都错过了关键时刻,确切地说是将IConfiguration对象转换为TheirStronglyTypedConfiguration对象的那一刻,所以看起来很神奇

在我的.NET Core项目(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

但是我没有Bind方法。

1 个答案:

答案 0 :(得分:0)

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

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

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<MySettings>(options => Configuration.GetSection("MySettings").Bind(options));
}