Comments 4
Cannot consume transient/scoped service SomeService from singleton ISingletonService
Про transient это же не правда. Никаких исключений не должно быть, надо только учитывать, что при использовании в singleton transient сам становится singleton.
Я бы ещё дополнил что валидацию DI можно явно включать или отключать, через UseDefaultServiceProvider. С .NET 9 эти опции включены по умолчанию в dev environment.
builder.Host.UseDefaultServiceProvider(options =>
{
options.ValidateScopes = true;
options.ValidateOnBuild = true;
});ValidateScopes - валидирует что singleton не "резолвит" scoped зависимости.
ValidateOnBuild - валидирует что сервисы могут быть сконструированы (не забыли зарегистрировать какой-то сервис).
Sign up to leave a comment.
Singleton, Transient, Scoped в .NET: краткая памятка