Start here. This is the direct spoken answer to practice first.
Why this question matters
A singleton outlives request scopes and is shared concurrently. Capturing a scoped service promotes its state toward application lifetime, delays disposal, and lets data or non-thread-safe dependencies cross request boundaries.
A scoped service normally belongs to one request or explicit operation, while a singleton lives until application shutdown. If the singleton stores a scoped dependency, that instance can behave like a singleton: disposal is delayed, request state becomes stale, and concurrent callers may use a component such as DbContext that is not thread safe. Constructor scope validation should reject this arrangement. I redesign the singleton so it does not retain scoped services or request objects.