Freigeben über


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, defaultCreator)

Erstellt eine neue instance der ServiceKey -Klasse

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.

Methoden

create(name, serviceClass)

Erstellt einen neue ServiceKey, dessen Implementierung standardmäßig eine neue Instanz einer TypeScript-Klasse ist, die den standardmäßigen Konstruktorparameter akzeptiert.

createCustom(name, defaultCreator)

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

ServiceCreator<T>

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