What are the differences between IOptions and IOptionsSnapshot?
Mar 7, 2023
IOptions and IOptionsSnapshot are interfaces provided as a part of the IOptions framework provided in ASP.NET Core.
There are three interfaces provided by this namespace as a part of configuring IOptions instances:
- IOptions
- IOptionsSnapshot and
- IOptionsMonitor
IOptions
- Options configured in IOptions are registered as SingletonServices
- Can be injected into any service for accessing options
- Doesn’t support option updates when configuration changes
- Doesn’t support Named options
IOptionsSnapshot
- Options configured in IOptionsSnapshot are registered as ScopedServices
- Can be injected into only Scoped and Transient services
- Supports updated options even after configuration is loaded
- Supports Named options