# Dependency Injection (.NET) > Lifetimes de serviços (singleton, scoped, transient), registro de serviços, IServiceProvider, boas práticas - 24 perguntas de entrevista - Mid-Level - [Perguntas de entrevista: .NET](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista.md) ## 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}(). 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. ## Mais 21 perguntas disponiveis - Em qual caso deve-se preferir AddSingleton em vez de AddScoped? - Qual é o papel de IServiceProvider no sistema de DI? Cadastre-se gratis: https://sharpskill.dev/pt/login ## Outros temas de entrevista .NET - [Fundamentos de C#](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/csharp-basics.md): 25 perguntas, Junior - [LINQ & Delegates](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/csharp-linq-delegates.md): 20 perguntas, Junior - [Fundamentos da linguagem C#](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/csharp-language-essentials.md): 15 perguntas, Junior - [Fundamentos do ASP.NET Core](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/aspnet-core-fundamentals.md): 18 perguntas, Junior - [Ciclo de vida das requisições no ASP.NET Core](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/aspnet-core-request-lifecycle.md): 20 perguntas, Junior - [Configuration & Settings](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/configuration-settings.md): 20 perguntas, Junior - [Ciclo de vida da aplicação](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/application-lifecycle.md): 20 perguntas, Junior - [Entity Framework Core](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/entity-framework-core.md): 25 perguntas, Mid-Level - [Minimal APIs](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/minimal-apis.md): 18 perguntas, Mid-Level - [Desenvolvimento de Web API](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/web-api-development.md): 22 perguntas, Mid-Level - [Async no ASP.NET Core](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/async-aspnet-core.md): 20 perguntas, Mid-Level - [Authentication & Authorization](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/authentication-authorization.md): 18 perguntas, Mid-Level - [HttpClient & Networking](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/httpclient-networking.md): 20 perguntas, Mid-Level - [Serialização JSON](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/json-serialization.md): 20 perguntas, Mid-Level - [Entity Framework Core avançado](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/ef-core-advanced.md): 25 perguntas, Mid-Level - [Recursos avançados do C#](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/csharp-advanced-features.md): 20 perguntas, Mid-Level - [Clean Architecture](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/clean-architecture.md): 20 perguntas, Mid-Level - [Logging, Monitoring & Observability](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/logging-monitoring.md): 22 perguntas, Mid-Level - [Testes unitários e xUnit](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/unit-testing-xunit.md): 20 perguntas, Mid-Level - [Testes de integração](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/integration-testing.md): 18 perguntas, Mid-Level - [Docker & Containerization](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/docker-containerization.md): 16 perguntas, Mid-Level - [NuGet Package Management](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/nuget-package-management.md): 16 perguntas, Mid-Level - [Memory Management & GC](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/memory-management-gc.md): 22 perguntas, Senior - [Programação reativa](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/reactive-programming.md): 24 perguntas, Senior - [Async/await & Patterns](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/async-await-patterns.md): 26 perguntas, Senior - [.NET Design Patterns](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/dotnet-design-patterns.md): 24 perguntas, Senior - [Otimização de desempenho](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/performance-optimization.md): 22 perguntas, Senior - [Segurança e Best Practices](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/security-best-practices.md): 24 perguntas, Senior - [SignalR e tempo real](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/signalr-realtime.md): 22 perguntas, Senior - [Arquitetura de Microsserviços](https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/microservices-architecture.md): 25 perguntas, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/pt/technologies/dotnet/perguntas-entrevista/dependency-injection