3
respostas

injeçao de dependencia de IProductRepository

bom dia pessoal, fiquei com a duvida sobre como e feito a injeçao de dependecia de ProductRepository na classe dataService, a injecaçao e feita no Addtransiet correto? mas o ProductRepository nao e passado junto com o dataService, entao como e feito?

3 respostas

Olá Luan, tudo certo?

A injeção de dependência é adicionada como um serviço, no caso um serviço transitório. Isso serve para você pedir para injetar um objeto de um tipo diretamente pelo construtor da classe. Por isso que é necessário a adição do IProdutoRepository produtoRepository como parâmetro do construtor e precisa setar um campo privado para armazenar essa instância.

Ou seja, você cria o serviço dizendo que quer um objeto daquele tipo, e depois você só pede um objeto daquele tipo pelo construtor da classe que irá utilizar esse objeto.

Espero ter ajudado!

acho que eu entendi, eu tenho os dois serviços dataservice e product repository, na classe dataservice eu passo um product pelo construtor. o reconhece esse product na dataservice , pq adicionei o product como serviço, e isso?

Então, Luan, na verdade a classe DataService serve para carregar os dados do arquivo livros.json e para inicializar o banco de dados, ou seja, garantir que o banco de dados esteja disponível na primeira execução da aplicação.

Já as classes da pasta Repositories, esses fazem todas as operações pertinentes ao uso do banco de dados, depois que ele já existir e estiver populado com ao menos os dados mínimos necessários.

Por isso eles são injetados. O DataService para ter um objeto criado assim que a aplicação rodar, se for necessário e o repositório para ter um objeto assim que for necessária uma interação com o banco de dados.