1) Configure
вызывается только при использовании опций.
2) Передача имени в AddOptions
выполняется только при определенных обстоятельствах.Подробнее об этом можно прочитать здесь .
Пример безымянной опции:
//in Startup.cs
services.AddOptions<MyOptionsClass>()
.Configure(o =>
{
o.Data = "test";
});
//then in the controller
public MyController(IOptionsMonitor<MyOptionsClass> optionsAccessor)
{
//note: Configure is called as MyController gets created by DI
var data = optionsAccessor.CurrentValue.Data;
}
Пример именованной опции:
//in Startup.cs
services.AddOptions<MyOptionsClass>("optionalOptionsName")
.Configure(o =>
{
o.Data = "test";
});
var monitor = services.BuildServiceProvider()
.GetService<IOptionsMonitor<MyOptionsClass>>();
//note: Configure gets called on .Get
var myOptions = monitor.Get("optionalOptionsName");