我在 ASP.NET Core 3.0 应用程序上有以下内容:
IServiceCollection services = new ServiceCollection();
services.AddSingleton<Settings>(new Settings { DefaultPageSize = 40 });
IServiceProvider provider = services.BuildServiceProvider();
var result = provider.GetService<IOptionsMonitor<Settings>>();
最后一行结果
是null
...知道为什么吗?
最佳答案
services.AddSingleton<Settings>(...
不会自动将Settings
与IOptionsMonitor
功能关联起来。
需要使用选项模式扩展之一将该 Settings
类配置为服务集合的选项
例如
IServiceCollection services = new ServiceCollection();
// Options bound and configured by a delegate
services.Configure<Settings>(option => {
option.DefaultPageSize = 40;
});
IServiceProvider provider = services.BuildServiceProvider();
var result = provider.GetService<IOptionsMonitor<Settings>>();
引用Options pattern in ASP.NET Core: Configure simple options with a delegate
关于c# - GetService 与 IOptionsMonitor<Settings> 返回 null 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58819299/