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.