IServiceKey interface
ServiceKey — это ключ подстановки, который используется при вызове ServiceScope.consume() для получения зависимости.
Комментарии
Каждый ключ службы также предоставляет реализацию зависимости по умолчанию, которая будет автоматически создана в корневом область, если зависимость не найдена. Предоставление реализации по умолчанию гарантирует безопасное внедрение новых зависимостей без случайного нарушения компонентов, которые загружаются старым узлом, который не предоставляет новую зависимость.
Свойства
default |
Функция обратного вызова, которая создает экземпляр этой службы по умолчанию. |
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 используется везде, где требуется ключ подстановки.