SOLID & Design Patterns Interview Question #98

How does ASP.NET Core dependency injection help apply SOLID principles?

DDD Boundaries, Resilience, Caching & Practical ASP.NET Core Design Mid-Level Intermediate

Quick Interview Answer

ASP.NET Core's DI container lets classes receive dependencies through abstractions rather than constructing infrastructure directly. This can support Dependency Inversion, improve testability, and make implementations replaceable.

Detailed Explanation

ASP.NET Core's DI container lets classes receive dependencies through abstractions rather than constructing infrastructure directly. This can support Dependency Inversion, improve testability, and make implementations replaceable.

DI does not automatically make a design SOLID. Large interfaces, misplaced responsibilities, service-locator usage, or inappropriate lifetimes can still create poor designs even when every type is registered in a container.

Code Example

builder.Services.AddScoped<IOrderRepository,
    EfOrderRepository>();

builder.Services.AddScoped<IEmailSender,
    SmtpEmailSender>();

builder.Services.AddScoped<OrderService>();