ServiceKey class
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.
Konstruktoren
(constructor)(id, name, default |
Erstellt eine neue instance der |
Eigenschaften
default |
Eine Rückruffunktion, die die Standard-instance dieses Diensts erstellt. |
id | Ein eindeutiger Bezeichner für diesen Dienstschlüssel. |
name | Der Name des Diensts. |
Methoden
create(name, service |
Erstellt einen neue ServiceKey, dessen Implementierung standardmäßig eine neue Instanz einer TypeScript-Klasse ist, die den standardmäßigen Konstruktorparameter akzeptiert. |
create |
Erstellt einen neuen ServiceKey, dessen standardmäßige Implementierung durch Aufruf des angegebenen Rückrufs abgerufen wird. |
Details zum Konstruktor
(constructor)(id, name, defaultCreator)
Erstellt eine neue instance der ServiceKey
-Klasse
protected constructor(id: string, name: string, defaultCreator: ServiceCreator<T>);
Parameter
- id
-
string
- name
-
string
- defaultCreator
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.
Details zur Methode
create(name, serviceClass)
Erstellt einen neue ServiceKey, dessen Implementierung standardmäßig eine neue Instanz einer TypeScript-Klasse ist, die den standardmäßigen Konstruktorparameter akzeptiert.
static create<TKey>(name: string, serviceClass: {
new (serviceScope: ServiceScope): TKey;
}): ServiceKey<TKey>;
Parameter
- name
-
string
Ein Name wie "my-package". IMyService", das paketübergreifend eindeutig sein sollte.
- serviceClass
-
{ new (serviceScope: ServiceScope): TKey; }
die TypeScript-Klasse, die den Dienst implementiert.
Gibt zurück
ServiceKey<TKey>
den neu erstellten ServiceKey
Hinweise
Wenn Sie benutzerdefinierte Konstruktorparameter angeben möchten, verwenden Sie stattdessen ServiceKey.createCustom().
createCustom(name, defaultCreator)
Erstellt einen neuen ServiceKey, dessen standardmäßige Implementierung durch Aufruf des angegebenen Rückrufs abgerufen wird.
static createCustom<TKey>(name: string, defaultCreator: ServiceCreator<TKey>): ServiceKey<TKey>;
Parameter
- name
-
string
Ein Name wie "my-package". IMyService", das paketübergreifend eindeutig sein sollte.
- defaultCreator
-
ServiceCreator<TKey>
Ein Rückruf, der ein Objekt zurückgibt, das die T-Schnittstelle implementiert.
Gibt zurück
ServiceKey<TKey>
der neu erstellte Dienstschlüssel