У меня есть ASP. NET Core 3.1 WebApi, основанный проект, который написан на C#
. Я хочу выполнить код один раз, когда приложение завершит загрузку.
Например, я хочу выполнить следующий код после создания IServiceProvider
, чтобы избежать необходимости создавать второй экземпляр IServiceProvider
.
. Я подумал, используя .AddOptions()
в расширение IServiceCollection
позволит мне определить функцию, которая будет позже вызываться после создания IServiceProvider
. Но, похоже, это не так.
Вот что я сделал. В методе ConfigureServices(IServiceCollection services)
я добавил следующий код
services.AddOptions()
.Configure<IServiceProvider>((serviceProvider) =>
{
var items = serviceProvider.GetServices<ICustomInterface>();
foreach (ICustomInterface item in items)
{
item.DoSome();
}
});
Однако код внутри Configure<IServiceProvider>()
никогда не вызывается.
Как я могу вызвать свой пользовательский код после IServiceProvider
построен?