What are the differences between IOptions and IOptionsSnapshot?

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

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
Default image
Sriram Mannava

I'm a full-stack developer and a software enthusiast who likes to play around with cloud and tech stack out of curiosity.

Leave a Reply