Mid⏱ 14 دقیقه2 بخش · 5 نکته
مرور سریع Dependency Injection
الگویی برای مدیریت وابستگیها که تستپذیری و انعطاف کد را در .NET بالا میبرد.
0 از 5 نکته مرور شد0٪
فهرست بخشها
مفهوم پایه0/2
چرا و چطور وابستگیها تزریق میشوند.
csharp\npublic class OrderService(IOrderRepository repo) { ... }\n
طول عمر سرویس (Service Lifetime)0/3
تفاوت Singleton، Scoped و Transient.
csharp\nbuilder.Services.AddSingleton<IMyService, MyService>();\n
⚠️ اشتباه رایج:
تزریق یک سرویس Scoped (مثل DbContext) داخل یک سرویس Singleton — این خطای رایج «Captive Dependency» نام دارد.
csharp\nbuilder.Services.AddScoped<AppDbContext>();\n
💡 نکتهٔ مصاحبه:
مثال کلاسیک مصاحبه: چرا DbContext باید Scoped باشد نه Singleton؟ چون EF Core DbContext Thread-safe نیست.
csharp\nbuilder.Services.AddTransient<IEmailSender, EmailSender>();\n
