Compartilhar via


IServiceKey interface

A ServiceKey é uma chave de pesquisa que é utilizada ao chamar ServiceScope.consume() para obter uma dependência.

Comentários

Cada chave de serviço também fornece uma implementação predefinida da dependência, que será criada automaticamente no âmbito de raiz se a dependência não for encontrada. Fornecer uma implementação predefinida garante que as novas dependências podem ser introduzidas em segurança sem quebrar inadvertidamente os componentes carregados por um anfitrião mais antigo que não fornece a nova dependência.

Propriedades

defaultCreator

Uma função de chamada de retorno que constrói a instância predefinida deste serviço.

id

Um identificador exclusivo para esta chave de serviço.

name

O nome do serviço.

Detalhes da propriedade

defaultCreator

Uma função de chamada de retorno que constrói a instância predefinida deste serviço.

readonly defaultCreator: ServiceCreator<T>;

Valor da propriedade

id

Um identificador exclusivo para esta chave de serviço.

readonly id: string;

Valor da propriedade

string

Comentários

Este identificador é uma cadeia gerada automaticamente que será exclusiva para a duração da página. Os autores de chamadas não devem fazer suposições sobre a formatação desta cadeia. Atualmente, baseia-se num contador global, mas isto pode mudar no futuro.

O ServiceScope utiliza este identificador internamente como uma chave de dicionário para localizar serviços. A ServiceKey destina-se a ser exclusiva, mesmo que várias instâncias da mesma biblioteca sejam carregadas na mesma página, mesmo que o mesmo nome tenha sido transmitido para ServiceKey.create(). Isto deve-se ao facto de cada chamada para ServiceKey.create() poder potencialmente fornecer uma implementação defaultCreator diferente, ao passo que um dos objetivos de conceção do ServiceScope é que a ordem pela qual as bibliotecas são carregadas nunca deve afetar a árvore de âmbitos resultante.

name

O nome do serviço.

readonly name: string;

Valor da propriedade

string

Comentários

Este nome é utilizado apenas para fins de registo e diagnóstico. Para torná-lo exclusivo, a convenção recomendada é o nome do pacote, seguido de um ponto final, seguido do nome da classe ou interface.

O sistema não assume que esta cadeia é exclusiva. Em vez disso, o ServiceKey.id é utilizado sempre que for necessária uma chave de pesquisa.