
Dependency Injection
Lifetime layanan (singleton, scoped, transient), registrasi layanan, IServiceProvider, praktik terbaik
1Apa perbedaan utama antara lifetime Singleton, Scoped, dan Transient?
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.
2Lifetime mana yang harus digunakan untuk mendaftarkan DbContext Entity Framework Core?
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.
3Bagaimana cara mendaftarkan service dengan interface dan implementasinya?
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}<IInterface, Implementation>(). 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.
Dalam kasus apa AddSingleton lebih disukai daripada AddScoped?
Apa peran IServiceProvider dalam sistem DI?
+21 pertanyaan wawancara
Topik wawancara .NET lainnya
Dasar-Dasar C#
LINQ & Delegates
Esensi Bahasa C#
Dasar-Dasar ASP.NET Core
Siklus Hidup Request ASP.NET Core
Configuration & Settings
Siklus Hidup Aplikasi
Entity Framework Core
Minimal APIs
Pengembangan Web API
Async di ASP.NET Core
Authentication & Authorization
HttpClient & Networking
Serialisasi JSON
Entity Framework Core Tingkat Lanjut
Fitur Lanjutan C#
Clean Architecture
Logging, Monitoring & Observability
Unit Testing & xUnit
Pengujian Integrasi
Docker & Containerization
Manajemen Paket NuGet
Memory Management & GC
Pemrograman reaktif
Async/await & Pola
.NET Design Patterns
Optimasi Performa
Keamanan & Best Practices
SignalR & Real-time
Arsitektur Microservices
Kuasai .NET untuk wawancara berikutnya
Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.
Mulai gratis