# Dependency Injection (.NET) > Lifetime layanan (singleton, scoped, transient), registrasi layanan, IServiceProvider, praktik terbaik - 24 pertanyaan wawancara - Mid-Level - [Pertanyaan Wawancara: .NET](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara.md) ## 1. Apa perbedaan utama antara lifetime Singleton, Scoped, dan Transient? **Jawaban** Singleton membuat satu instance untuk seluruh lifetime aplikasi, Scoped membuat satu instance per request HTTP (atau scope), dan Transient membuat instance baru setiap kali diinjeksi. Lifetime ini menentukan kapan dan berapa kali container DI menginstansiasi sebuah layanan. Gunakan Singleton untuk layanan stateless yang dibagikan, Scoped untuk layanan yang terikat request (seperti DbContext), dan Transient untuk layanan ringan tanpa state. ## 2. Lifetime mana yang harus digunakan untuk mendaftarkan DbContext Entity Framework Core? **Jawaban** DbContext harus didaftarkan dengan lifetime Scoped karena tidak thread-safe dan menyimpan state tracking entitas. Setiap permintaan HTTP harus memiliki instance DbContext sendiri untuk menghindari masalah konkurensi. Pendaftaran dilakukan dengan AddDbContext yang secara otomatis mengonfigurasi lifetime Scoped. Menggunakan Singleton akan menyebabkan error konkurensi, dan Transient akan memboroskan sumber daya dengan membuat terlalu banyak instance. ## 3. Bagaimana cara mendaftarkan service dengan interface dan implementasinya? **Jawaban** Pendaftaran service dilakukan dengan metode AddSingleton, AddScoped, atau AddTransient dengan menentukan interface sebagai tipe service dan kelas konkret sebagai implementasinya. Sintaksnya adalah services.Add{Lifetime}(). Pendekatan ini mematuhi prinsip dependency inversion dan memudahkan pengujian dengan memungkinkan penggantian implementasi. Kontainer DI akan secara otomatis me-resolve implementasi konkret saat menginjeksi interface. ## 21 pertanyaan lagi tersedia - Dalam kasus apa AddSingleton lebih disukai daripada AddScoped? - Apa peran IServiceProvider dalam sistem DI? Daftar gratis: https://sharpskill.dev/id/login ## Topik wawancara .NET lainnya - [Dasar-Dasar C#](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/csharp-basics.md): 25 pertanyaan, Junior - [LINQ & Delegates](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/csharp-linq-delegates.md): 20 pertanyaan, Junior - [Esensi Bahasa C#](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/csharp-language-essentials.md): 15 pertanyaan, Junior - [Dasar-Dasar ASP.NET Core](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/aspnet-core-fundamentals.md): 18 pertanyaan, Junior - [Siklus Hidup Request ASP.NET Core](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/aspnet-core-request-lifecycle.md): 20 pertanyaan, Junior - [Configuration & Settings](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/configuration-settings.md): 20 pertanyaan, Junior - [Siklus Hidup Aplikasi](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/application-lifecycle.md): 20 pertanyaan, Junior - [Entity Framework Core](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/entity-framework-core.md): 25 pertanyaan, Mid-Level - [Minimal APIs](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/minimal-apis.md): 18 pertanyaan, Mid-Level - [Pengembangan Web API](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/web-api-development.md): 22 pertanyaan, Mid-Level - [Async di ASP.NET Core](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/async-aspnet-core.md): 20 pertanyaan, Mid-Level - [Authentication & Authorization](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/authentication-authorization.md): 18 pertanyaan, Mid-Level - [HttpClient & Networking](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/httpclient-networking.md): 20 pertanyaan, Mid-Level - [Serialisasi JSON](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/json-serialization.md): 20 pertanyaan, Mid-Level - [Entity Framework Core Tingkat Lanjut](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/ef-core-advanced.md): 25 pertanyaan, Mid-Level - [Fitur Lanjutan C#](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/csharp-advanced-features.md): 20 pertanyaan, Mid-Level - [Clean Architecture](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/clean-architecture.md): 20 pertanyaan, Mid-Level - [Logging, Monitoring & Observability](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/logging-monitoring.md): 22 pertanyaan, Mid-Level - [Unit Testing & xUnit](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/unit-testing-xunit.md): 20 pertanyaan, Mid-Level - [Pengujian Integrasi](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/integration-testing.md): 18 pertanyaan, Mid-Level - [Docker & Containerization](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/docker-containerization.md): 16 pertanyaan, Mid-Level - [Manajemen Paket NuGet](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/nuget-package-management.md): 16 pertanyaan, Mid-Level - [Memory Management & GC](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/memory-management-gc.md): 22 pertanyaan, Senior - [Pemrograman reaktif](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/reactive-programming.md): 24 pertanyaan, Senior - [Async/await & Pola](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/async-await-patterns.md): 26 pertanyaan, Senior - [.NET Design Patterns](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/dotnet-design-patterns.md): 24 pertanyaan, Senior - [Optimasi Performa](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/performance-optimization.md): 22 pertanyaan, Senior - [Keamanan & Best Practices](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/security-best-practices.md): 24 pertanyaan, Senior - [SignalR & Real-time](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/signalr-realtime.md): 22 pertanyaan, Senior - [Arsitektur Microservices](https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/microservices-architecture.md): 25 pertanyaan, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/id/technologies/dotnet/pertanyaan-wawancara/dependency-injection