Answer
These abstractions implement the Options pattern for working with configuration-bound classes.
- IOptions<T> – A singleton snapshot of configuration, read once at startup.
- IOptionsSnapshot<T> – A scoped snapshot that is recalculated per request; useful for web apps where config might change between requests.
- IOptionsMonitor<T> – Supports change notifications and is ideal for long-lived components that need to react to configuration changes at runtime.
They allow strongly typed configuration without scattering configuration reads throughout the codebase.