Freigeben über


IServiceKey interface

Der ServiceKey ist ein Nachschlageschlüssel, der beim Aufrufen von ServiceScope.consume() zum Abrufen einer Abhängigkeit verwendet wird.

Hinweise

Jeder Dienstschlüssel stellt auch eine Standardimplementierung der Abhängigkeit bereit, die automatisch im Stammbereich erstellt wird, wenn die Abhängigkeit nicht gefunden wird. Die Bereitstellung einer Standardimplementierung stellt sicher, dass neue Abhängigkeiten sicher eingeführt werden können, ohne versehentlich Komponenten zu unterbrechen, die von einem älteren Host geladen werden, der die neue Abhängigkeit nicht bereitstellt.

Eigenschaften

defaultCreator

Eine Rückruffunktion, die die Standard-instance dieses Diensts erstellt.

id

Ein eindeutiger Bezeichner für diesen Dienstschlüssel.

name

Der Name des Diensts.

Details zur Eigenschaft

defaultCreator

Eine Rückruffunktion, die die Standard-instance dieses Diensts erstellt.

readonly defaultCreator: ServiceCreator<T>;

Eigenschaftswert

id

Ein eindeutiger Bezeichner für diesen Dienstschlüssel.

readonly id: string;

Eigenschaftswert

string

Hinweise

Dieser Bezeichner ist eine automatisch generierte Zeichenfolge, die für die Lebensdauer der Seite eindeutig ist. Aufrufer sollten keine Annahmen über die Formatierung dieser Zeichenfolge machen. Es basiert derzeit auf einem globalen Zähler, aber dies kann sich in Zukunft ändern.

ServiceScope verwendet diesen Bezeichner intern als Wörterbuchschlüssel zum Suchen von Diensten. Der ServiceKey soll eindeutig sein, auch wenn mehrere Instanzen derselben Bibliothek auf derselben Seite geladen werden, auch wenn derselbe Name an ServiceKey.create() übergeben wurde. Dies liegt daran, dass jeder Aufruf von ServiceKey.create() potenziell eine andere defaultCreator-Implementierung bereitstellen kann, während eines der Entwurfsziele von ServiceScope darin besteht, dass die Reihenfolge, in der Bibliotheken geladen werden, niemals die resultierende Struktur der Bereiche beeinflussen sollte.

name

Der Name des Diensts.

readonly name: string;

Eigenschaftswert

string

Hinweise

Dieser Name wird nur für Protokollierungs- und Diagnosezwecke verwendet. Um sie eindeutig zu machen, ist die empfohlene Konvention der Paketname, gefolgt von einem Punkt, gefolgt vom Klassen- oder Schnittstellennamen.

Das System geht nicht davon aus, dass diese Zeichenfolge eindeutig ist. Stattdessen wird die ServiceKey.id überall dort verwendet, wo ein Nachschlageschlüssel benötigt wird.