3
respostas

Dúvida - Injeção de dependência.

Boa tarde

Estou trabalhando com o pattern Repository para a camada de persistência.

Gostaria de fazer algo semelhante ao que faço no ASP.NET CORE, injetando as minhas dependências via construtor.

Por exemplo.

O meu repository tem uma dependencia que é SQLiteConnection. Quero injetar a mesma para que fique transparente como no exemplo a sequir.

public BaseRepository(SQLiteConnection connection) { _connection = connection; }

Respectivamente vou injetar os repositories em seus respectivos services.

3 respostas

Olá, Fabiano

Você pode configurar uma instância do SQLiteConnection a ser injetada através do método ConfigureServices no arquivo Setup.cs:

https://docs.microsoft.com/pt-br/aspnet/core/fundamentals/dependency-injection

public void ConfigureServices(IServiceCollection services)
{
    // 
    // Antes vão as outras configurações...
    // 


   services.AddSingleton<ISQLiteConnection>(new SQLiteConnection("aqui_vai_sua_string_de_conexao_esperta"));
}

Agora, cuidado: passe o SQLiteConnection através da sua interface, ISQLiteConnection:

public BaseRepository(ISQLiteConnection connection) { _connection = connection; }

Veja se funciona para você.

Mas no Xamarin, como faço essa injeção de dependência?

Não sei se fui claro na minha pergunta.. Gostaria de usar um container, como autofac, etc.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software