Dependency Injection Lifetimes
Design a small subsystem that relies on Dependency Injection Lifetimes. Outline components, data flow, failure modes, and metrics.
Answers use simple, clear English.
Quick interview answer
Use Dependency Injection Lifetimes as the core idea. Example shape: Register EF DbContext as Scoped; IEmailSender as Transient; IOptionsMonitor as Singleton..
Detailed answer
Use Dependency Injection Lifetimes as the core idea. Example shape: Register EF DbContext as Scoped; IEmailSender as Transient; IOptionsMonitor as Singleton.. Watch for: Wrong lifetime causes stale state or thread-safety bugs.. Measure success via latency/error/saturation. Core: Singleton one instance app-wide; Scoped per request (DbContext); Transient new each resolve. Captive dependency: don't inject Scoped into Singleton. Real-time example: Register EF DbContext as Scoped; IEmailSender as Transient; IOptionsMonitor as Singleton. Pros: Built-in container; testable via constructor injection. Cons: Wrong lifetime causes stale state or thread-safety bugs. Common mistakes: Singleton holding mutable Scoped service; resolving Scoped from root provider. Best practices: Constructor injection only in controllers; validate scopes at startup in dev. Audience level: Engineering Manager.
Full explanation
Singleton one instance app-wide; Scoped per request (DbContext); Transient new each resolve. Captive dependency: don't inject Scoped into Singleton.
Real example & use case
Register EF DbContext as Scoped; IEmailSender as Transient; IOptionsMonitor as Singleton.
Pros & cons
Pros: Built-in container; testable via constructor injection. Cons: Wrong lifetime causes stale state or thread-safety bugs.
Common mistakes
Singleton holding mutable Scoped service; resolving Scoped from root provider.
Best practices
Constructor injection only in controllers; validate scopes at startup in dev.
Follow-up questions
- How would you test Dependency Injection Lifetimes?
- What metrics prove Dependency Injection Lifetimes is healthy in prod?
- How does Dependency Injection Lifetimes change at 10× traffic?