# Dependency Injection (.NET) > Lifetime serwisów (singleton, scoped, transient), rejestracja serwisów, IServiceProvider, najlepsze praktyki - 24 pytań z rozmów - Mid-Level - [Pytania z rozmów: .NET](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne.md) ## 1. Jaka jest główna różnica między lifetime'ami Singleton, Scoped i Transient? **Odpowiedź** Singleton tworzy pojedynczą instancję na cały lifetime aplikacji, Scoped tworzy jedną instancję na żądanie HTTP (lub scope), a Transient tworzy nową instancję przy każdym wstrzyknięciu. Te lifetime'y określają, kiedy i ile razy kontener DI tworzy instancję serwisu. Używaj Singleton dla bezstanowych współdzielonych serwisów, Scoped dla serwisów związanych z żądaniem (jak DbContext) i Transient dla lekkich bezstanowych serwisów. ## 2. Którego lifetime należy użyć do zarejestrowania DbContext z Entity Framework Core? **Odpowiedź** DbContext powinien być zarejestrowany z lifetime Scoped, ponieważ nie jest thread-safe i utrzymuje stan śledzenia encji. Każde żądanie HTTP powinno mieć własną instancję DbContext, aby uniknąć problemów ze współbieżnością. Rejestracja odbywa się za pomocą AddDbContext, który automatycznie konfiguruje lifetime Scoped. Użycie Singleton spowodowałoby błędy współbieżności, a Transient marnowałby zasoby, tworząc zbyt wiele instancji. ## 3. Jak zarejestrować usługę z interface i jej implementacją? **Odpowiedź** Rejestracja usługi odbywa się za pomocą metod AddSingleton, AddScoped lub AddTransient, określając interface jako typ usługi, a klasę konkretną jako implementację. Składnia to services.Add{Lifetime}(). To podejście przestrzega zasady odwrócenia zależności i ułatwia testowanie, umożliwiając podmianę implementacji. Kontener DI automatycznie rozwiąże konkretną implementację podczas wstrzykiwania interface. ## Jeszcze 21 dostępnych pytań - W jakim przypadku należy preferować AddSingleton zamiast AddScoped? - Jaka jest rola IServiceProvider w systemie DI? Zarejestruj się za darmo: https://sharpskill.dev/pl/login ## Inne tematy rekrutacyjne .NET - [Podstawy C#](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/csharp-basics.md): 25 pytań, Junior - [LINQ & Delegates](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/csharp-linq-delegates.md): 20 pytań, Junior - [Podstawy języka C#](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/csharp-language-essentials.md): 15 pytań, Junior - [Podstawy ASP.NET Core](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/aspnet-core-fundamentals.md): 18 pytań, Junior - [Cykl życia żądania w ASP.NET Core](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/aspnet-core-request-lifecycle.md): 20 pytań, Junior - [Configuration & Settings](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/configuration-settings.md): 20 pytań, Junior - [Cykl życia aplikacji](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/application-lifecycle.md): 20 pytań, Junior - [Entity Framework Core](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/entity-framework-core.md): 25 pytań, Mid-Level - [Minimal APIs](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/minimal-apis.md): 18 pytań, Mid-Level - [Tworzenie Web API](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/web-api-development.md): 22 pytań, Mid-Level - [Async w ASP.NET Core](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/async-aspnet-core.md): 20 pytań, Mid-Level - [Authentication & Authorization](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/authentication-authorization.md): 18 pytań, Mid-Level - [HttpClient & Networking](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/httpclient-networking.md): 20 pytań, Mid-Level - [Serializacja JSON](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/json-serialization.md): 20 pytań, Mid-Level - [Entity Framework Core zaawansowany](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/ef-core-advanced.md): 25 pytań, Mid-Level - [Zaawansowane funkcje C#](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/csharp-advanced-features.md): 20 pytań, Mid-Level - [Clean Architecture](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/clean-architecture.md): 20 pytań, Mid-Level - [Logging, Monitoring & Observability](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/logging-monitoring.md): 22 pytań, Mid-Level - [Testy jednostkowe & xUnit](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/unit-testing-xunit.md): 20 pytań, Mid-Level - [Testy integracyjne](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/integration-testing.md): 18 pytań, Mid-Level - [Docker & Containerization](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/docker-containerization.md): 16 pytań, Mid-Level - [Zarządzanie pakietami NuGet](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/nuget-package-management.md): 16 pytań, Mid-Level - [Memory Management & GC](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/memory-management-gc.md): 22 pytań, Senior - [Programowanie reaktywne](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/reactive-programming.md): 24 pytań, Senior - [Async/await i wzorce](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/async-await-patterns.md): 26 pytań, Senior - [.NET Design Patterns](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/dotnet-design-patterns.md): 24 pytań, Senior - [Optymalizacja wydajności](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/performance-optimization.md): 22 pytań, Senior - [Bezpieczeństwo i Best Practices](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/security-best-practices.md): 24 pytań, Senior - [SignalR i czas rzeczywisty](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/signalr-realtime.md): 22 pytań, Senior - [Architektura Mikroserwisów](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/microservices-architecture.md): 25 pytań, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/dependency-injection