Histórico da Página
Painel | |||||||
---|---|---|---|---|---|---|---|
| |||||||
A injeção de dependência é uma versão especializada do padrão Inversão de Controle (IoC), onde a preocupação que está sendo invertida é o processo de obtenção da dependência necessária. Com a injeção de dependência, outra classe é responsável por injetar dependências em um objeto em tempo de execução. O exemplo de código a seguir mostra como a classe LoginViewModel é estruturada ao usar injeção de dependência:
Clique para acessar o arquivo no projeto C&P O construtor LoginViewModel recebe várias instâncias de objeto de interface como argumentos injetados por outra classe. A única dependência na classe LoginViewModel está nos tipos de interface. Portanto, a classe LoginViewModel não tem conhecimento da classe responsável por instanciar os objetos da interface. A classe responsável por instanciar os objetos de interface e inseri-los na classe LoginViewModel é conhecida como contêiner de injeção de dependência. |
Painel | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
Os contêineres de injeção de dependência reduzem o acoplamento entre objetos, fornecendo um recurso para criar instâncias de classes e gerenciar seu tempo de vida com base na configuração do contêiner. Durante a criação do objeto, o contêiner injeta nele quaisquer dependências que o objeto requer. Se essas dependências ainda não foram criadas, o contêiner cria e resolve suas dependências primeiro. Há várias vantagens em usar um contêiner de injeção de dependência:
O método RegisterAppServices recebe uma instância de MauiAppBuilder, e podemos usar apropriedade Services para registrar nossos serviços, Views e ViewModels.
Clique para acessar o arquivo no projeto C&P Dependendo das necessidades do seu aplicativo, pode ser necessário adicionar serviços com tempos de vida diferentes. A tabela a seguir fornece informações sobre esses diferentes tempos de registro:
|