Поделиться через


IServiceKey interface

ServiceKey — это ключ подстановки, который используется при вызове ServiceScope.consume() для получения зависимости.

Комментарии

Каждый ключ службы также предоставляет реализацию зависимости по умолчанию, которая будет автоматически создана в корневом область, если зависимость не найдена. Предоставление реализации по умолчанию гарантирует безопасное внедрение новых зависимостей без случайного нарушения компонентов, которые загружаются старым узлом, который не предоставляет новую зависимость.

Свойства

defaultCreator

Функция обратного вызова, которая создает экземпляр этой службы по умолчанию.

id

Уникальный идентификатор для этого ключа службы.

name

Имя службы.

Сведения о свойстве

defaultCreator

Функция обратного вызова, которая создает экземпляр этой службы по умолчанию.

readonly defaultCreator: ServiceCreator<T>;

Значение свойства

id

Уникальный идентификатор для этого ключа службы.

readonly id: string;

Значение свойства

string

Комментарии

Этот идентификатор представляет собой автоматически сгенерированную строку, которая будет уникальной в течение всего времени существования страницы. Вызывающие не должны делать предположений о форматировании этой строки. В настоящее время он основан на глобальном счетчике, но в будущем это может измениться.

ServiceScope использует этот идентификатор внутри в качестве ключа словаря для поиска служб. ServiceKey должен быть уникальным, даже если на одной странице загружено несколько экземпляров одной библиотеки, даже если в ServiceKey.create() было передано одно и то же имя. Это связано с тем, что каждый вызов ServiceKey.create() потенциально может обеспечить другую реализацию defaultCreator, в то время как одной из целей проектирования ServiceScope является то, что порядок загрузки библиотек никогда не должен влиять на результирующее дерево областей.

name

Имя службы.

readonly name: string;

Значение свойства

string

Комментарии

Это имя используется только для ведения журнала и диагностики. Чтобы сделать его уникальным, рекомендуемым соглашением является имя пакета, за которым следует точка, за которой следует имя класса или интерфейса.

Система не предполагает, что эта строка является уникальной. Вместо этого ServiceKey.id используется везде, где требуется ключ подстановки.