0

我在 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>>();

最后一行resultnull......知道为什么吗?

4

1 回答 1

3
services.AddSingleton<Settings>(...

不会自动SettingsIOptionsMonitor功能关联。

需要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>>();

ASP.NET Core 中的参考选项模式:使用委托配置简单选项

于 2019-11-12T13:06:16.033 回答