Pull to refresh

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.

Articles