.net核心中的配置选项
lambda Options
如何在.NET Core中与services.Add*
一起使用?.net核心中的配置选项
我通常做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
如何拉姆达
Options
与services.Add*
工作.NET核心?
常见模式是添加一个满足Action<TOptions>
委托的表达式。 TOptions
是对应于add函数的对象,它使消费者有机会根据需要更新对象,设置值或调用方法。 Action<TOptions>
作为服务生命周期的一部分执行。例如,当使用扩展方法添加MVC时,框架将在服务可供使用之前调用您的操作。因此,在这个特定的例子中,所有的底层MVC服务都被注册了,并且一个选项对象被实例化并赋予你来执行。
这给了一个灯。我想我正在迷失在'builder'调用图上。一个建筑商将呼叫传递给另一个建筑商,将其传递给另一个建筑商。 –
这部分设计之美。允许消费者通过一个选项对象表达变更的能力,在'Action
我不认为这是可能的,因为配置服务是为了保存信息。我会建议实现一个简单的服务......就像在同一个链接的services文件夹中完成的一样:https://github.com/aspnet/Identity/tree/dev/samples/IdentitySample.Mvc/Services – Kris
我不喜欢不明白为什么你说这是不可能的,虽然我提供的链接清楚地包含了这个'options.UseSqlServer(Configuration.GetConnectionString(“DefaultConnection”))' –
您正在询问在配置中调用一个方法,仔细看看你的链接。在你的例子中,在UseSqlServer的Lambda中有一个方法调用,它不是配置... – Kris