.NET

Dependency Injection

Lifetimes de serviços (singleton, scoped, transient), registro de serviços, IServiceProvider, boas práticas

24 perguntas de entrevista·
Mid-Level
1

Qual é a principal diferença entre os lifetimes Singleton, Scoped e Transient?

Resposta

Singleton cria uma única instância durante toda a vida da aplicação, Scoped cria uma instância por requisição HTTP (ou scope), e Transient cria uma nova instância sempre que é injetado. Esses lifetimes determinam quando e quantas vezes o contêiner DI instancia um serviço. Use Singleton para serviços sem estado compartilhados, Scoped para serviços ligados a uma requisição (como DbContext), e Transient para serviços leves sem estado.

2

Qual lifetime deve ser usado para registrar um DbContext do Entity Framework Core?

Resposta

O DbContext deve ser registrado com lifetime Scoped porque não é thread-safe e mantém um estado de tracking das entidades. Cada requisição HTTP deve ter sua própria instância de DbContext para evitar problemas de concorrência. O registro é feito com AddDbContext, que configura automaticamente o lifetime Scoped. Usar Singleton causaria erros de concorrência e Transient desperdiçaria recursos ao criar instâncias demais.

3

Como registrar um serviço com uma interface e sua implementação?

Resposta

O registro de um serviço é feito com os métodos AddSingleton, AddScoped ou AddTransient, especificando a interface como tipo de serviço e a classe concreta como implementação. A sintaxe é services.Add{Lifetime}<IInterface, Implementation>(). Essa abordagem respeita o princípio de inversão de dependência e facilita os testes ao permitir a substituição de implementações. O contêiner DI resolverá automaticamente a implementação concreta ao injetar a interface.

4

Em qual caso deve-se preferir AddSingleton em vez de AddScoped?

5

Qual é o papel de IServiceProvider no sistema de DI?

+21 perguntas de entrevista

Domine .NET para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis