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>();