.NET

Dependency Injection

Lifetime layanan (singleton, scoped, transient), registrasi layanan, IServiceProvider, praktik terbaik

24 pertanyaan wawancaraยท
Mid-Level
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}<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.

4

Dalam kasus apa AddSingleton lebih disukai daripada AddScoped?

5

Apa peran IServiceProvider dalam sistem DI?

+21 pertanyaan wawancara

Kuasai .NET untuk wawancara berikutnya

Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.

Mulai gratis