CodeShot
Midسختی 3 از ۵· در 90٪ مصاحبه‌های این حوزه پرسیده شده

Dependency Injection در C# چیست؟

نشان کردن

پاسخ کوتاه

الگویی برای تزریق وابستگی‌ها از بیرون به‌جای ساخت مستقیم Objectها داخل کلاس.

پاسخ کامل

به‌جای این‌که یک کلاس خودش با new وابستگی‌هایش را بسازد، آن وابستگی‌ها (معمولاً از طریق Constructor) از بیرون به آن داده می‌شوند. این کار باعث کاهش وابستگی به پیاده‌سازی مشخص، افزایش تست‌پذیری و امکان تعویض یک وابستگی بدون تغییر کلاس‌های دیگر می‌شود.

مثال کد

public UserService(IRepository repo) { _repo = repo; }