Injeção de dependência com Blazor

E aí galera! Tudo certo?

Hoje vamos falar novamente sobre o Blazor, dessa vez o post é rapidinho e vamos falar sobre injeção de dependência! Bora!

Caso você ainda esteja um pouco perdido e não saiba o que é o Blazor, sugiro que você veja esse post aqui.

Injeção de dependência

Se você ainda nunca ouviu falar sobre isso, vou dar um breve resumo: injeção de dependência é uma técnica utilizada para manter o baixo acoplamento entre objetos. Fazendo com que os objetos dependam apenas de abstrações (Interfaces por exemplo) e não de objetos de “baixo nível”.

Injeção de dependência no Blazor

No Blazor, o mecanismo de injeção de dependência é baseado na interface System.IServiceProvider do .NET.

Como utilizar?

Para utilizar a injeção de dependência no Blazor, precisamos configurar quais serviços vamos utilizar no método Main, dentro de Program.cs. E depois injetala utilizando a diretiva @inject. Para exemplificar, vamos fazer uma classe que gera números aleatórios e injetá-la em um componente.

Criei uma pasta chamada “Services“, e dentro dela a classe “GeradorDeNumeros” que tem o seguinte código:

Logo após, inseri no arquivo “_ViewImports.cshtml” a seguinte linha de código, que serve para “registrar” o namespace da minha classe, para poder utilizá-la sem precisar colocar o nome inteiro toda vez:

E então, registrei o serviço dentro do método “Main” na classe “Program” da seguinte maneira:

Nesse exemplo, estamos instanciando a classe como um Singleton, que manterá apenas uma instância dessa classe. Fiz dessa maneira por fins didáticos, só para o exemplo; o tipo utilizado depende de cada situação que temos em nossas aplicações.

Por fim, vamos fazer o componente que vai utilizar a nossa classe, ele ficou escrito dessa maneira:

Vamos reparar em algumas coisas:

    • A diretiva @inject na linha 2 faz com que utilizemos a instância da classe “GeradorDeNumeros” que vai pra variável “GeraNumeros“;
    • Se não tivéssemos colocado a referência da classe no arquivo “_ViewImports.cshtml” teríamos que colocar o namespace também, e o código ficaria assim:
      • @inject Services.GeradorDeNumeros GeraNumeros
    • A chamada do método está na linha 14, onde preenchemos a variável “numero” com o retorno.

O resultado final é esse:

blazor-numeros

Tranquilo de mais né galera?

Fiquem ligados por aqui que logo logo vamos fazer uma todo list para exercitar!

Os exemplos de código estão disponíveis no GitHub: https://github.com/vmussak/blazor-examples

Referências

O post foi inspirado por esse conteúdo aqui:

Por hoje é só, qualquer dúvida ou sugestão, estou à disposição! Até mais 😀

 

Anúncios

One thought on “Injeção de dependência com Blazor

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

w

Connecting to %s