Was ist KeyedServices?
Abhängigkeitsinjektion (DI) ist in ASP.NET Core allgegenwärtig. Man kann es für benutzerdefinierte Dienste verwenden, aber noch wichtiger ist, dass das Framework selbst immer DI verwendet. Das meiste, was man in ASP.NET Core konfigurieren kann, wird über DI konfiguriert.
Für Schlüsseldienste wird eine weitere Information im ServiceDescriptor gespeichert, der ServiceKey ist, der zur Identifikation des Dienstes verwendet wird. Der Schlüssel kann jedes Objekt sein, meist aber String oder Enum (kann Konstanten sein, daher kann er in Eigenschaften verwendet werden). Für nicht-schlüsselgebundene Dienste, Identitätsregistrierung; Für Schlüsseldienste wird die kombinierte Identitätsregistrierung mit ServiceType registriert. ServiceTypeServiceKey。
Ein Keying-Service bezeichnet einen Mechanismus, der Schlüssel verwendet, um Abhängigkeitsinjektionsdienste (DI) zu registrieren und abzurufen. Registrieren Sie einen Service, indem Sie AddKeyedSingleton (oder AddKeyedScoped oder AddKeyedTransient) aufrufen, der mit einem Schlüssel verknüpft ist. Verwenden Sie die [FromKeyedServices]-Eigenschaft, um den Schlüssel für den Zugriff auf den registrierten Dienst anzugeben.
- AddKeyedScoped
- AddKeyedSingleton
- AddKeyedTransient
KeyedServices-Tests
Erstellen Sie eine neue Schnittstelle zum Versenden von Benachrichtigungen, implementieren Sie E-Mail-, SMS- und Nachrichten-Push-Methoden, registrieren Sie sich über den Key Service und rufen die spezifische Implementierung durch Angabe der Service-ID auf, der Code lautet wie folgt:
Führen Sie wie unten gezeigt aus:
Das Einschleusen von Code über einen Konstruktor erfolgt wie folgt:
Referenz:
Der Hyperlink-Login ist sichtbar.
Der Hyperlink-Login ist sichtbar. |