Anforderungen: Beim Lesen der ASP.NET Core Options-Dokumentation habe ich festgestellt, dass es zwei Codetypen gibt, die Klassen für Optionsmuster verwenden, um stark typisierten Zugriff auf die entsprechende Einstellungsgruppe zu ermöglichen."AddOptions”、“KonfigurierenWas ist der Unterschied zwischen den beiden?
Die bevorzugte Methode zum Auslesen der relevanten Konfigurationswerte ist die Verwendung des Optionsmodus.
Optionsmodus in ASP.NET Core:Der Hyperlink-Login ist sichtbar.
Das Objekt ConsulOption sieht so aus:
appsettings.json Die Konfiguration ist wie folgt:
AddOptions-Konfiguration
Der Code lautet wie folgt:
Konfiguration konfigurieren
Der Code lautet wie folgt:
Die beiden sind tatsächlich gleichwertig, der zugrundeliegende Aufruf von AddOptions Bind ist immer noch die Konfigurationsmethode.
OptionsBuilder.Bind(IConfiguration config) ruft Configure(IConfiguration config) tatsächlich direkt auf, sodass sie ebenfalls gleichwertig sind, sodass die beiden APIs austauschbar sind, und AddOptions kam später hinzu, das weitere Anpassungen ermöglichte.
OptionsBuilderConfigurationExtensionsCode:Der Hyperlink-Login ist sichtbar.
Lesen Sie die Konfiguration
Aufnahmen<TOptions>: Singleton-Dienst, das heißt, die Anwendung wird beim Start registriert und die Konfigurationsdatei wird anschließend geändert, die IOptions werden nicht synchron aktualisiert und es bleibt der alte Wert
IOptionsSnapshot<TOptions>: Der Lebenszyklus ist scoped, und die Konfiguration wird mit jeder Anfrage neu abgerufen.
IOptionsMonitor<TOptions>: Der Lebenszyklus ist ein Singleton, im Gegensatz zu IOptions, das auf<TOptions> Updates im Profil hört und die Antwort automatisch synchronisiert.
(Ende)
|