IOptions, IOptionsSnapshot und IOptionsMonitor verstehen

Wenn ich das Interface IOptions in meinen Klassen verwende ist das eine Singleton Instanz. Wurde diese Instanz durch eine Configurations-Datei gespeist bekommt diese Instanz Änderungen an dieser Datei nicht mit.
Verwende ich dagegen die IOptionsSnapShot Instanz bekomme ich die geänderten Werte mit. Bitte hier beachten, dass das im WebHost funktioniert, da der nächste Request dann die Aktualisierung mit sich bringt. In meinem Beispiel (Console) funktioniert das nicht. Da ist genauso wie bei er Dependency Injection bei der Methode AddScoped… Dieser Type wird dann bei jedem Request neu erzeugt.

Wenn ich dagegen die Instanz IOptionsMonitor verwende, kann ich einen Callback abonnieren und kann auf entsprechende Änderungen reagieren.

Bitte beachten:
OnChange liefert ein IDisposable Objekt. Das muss auch Disposed werden, sonst wird der Monitor nicht abgeräumt.