.net核心中的配置选项

时间:2017-04-07 12:01:17

标签: c# dependency-injection asp.net-core

lambda Options如何在.NET Core中使用services.Add*

我通常使用services.Configure

执行以下操作
services.Configure<MyOptions>(
  Configuration.GetSection("my-option-section-in-appsettings.json"));

或lambda变体,

services.Configure<MyOptions>(options =>
{
     options.PropertyName = "some-thing"
}

但是当谈到以下情况时,我迷路了,

services.AddMyService(options => options.UseMethod1(...));

我尝试遍历使用上述代码的代码,但我找不到自己的方法。我能得到的最快的例子是here

1 个答案:

答案 0 :(得分:0)

  

lambda Options如何在 .NET Core 中使用services.Add*

常见模式是添加满足Action<TOptions>委托的表达式。 TOptions是与add函数对应的对象,它使消费者有机会根据需要更新对象,设置值或调用方法。 Action<TOptions>作为服务生命周期的一部分执行。例如,当使用.AddMvc扩展方法添加MVC时,框架将在服务可供使用之前调用您的操作。因此,通过此特定示例,将注册所有基础MVC服务,并实例化选项对象并将其提供给您。