Sobes.tech
Junior — Middle

Can you explain what Dependency Injection is in C# and why it is needed?

sobes.tech AI

Answer from AI

Dependency Injection (DI) is a design pattern that allows objects, which a class depends on, to be passed from outside rather than created inside the class itself. In C#, this helps make the code more modular, testable, and maintainable.

Why is this needed:

  • Simplifies replacing dependencies (for example, for testing, mock objects can be used).
  • Reduces coupling between components.
  • Improves code readability and maintainability.

Example of simple DI through constructor:

public interface ILogger
{
    void Log(string message);
}

public class ConsoleLogger : ILogger
{
    public void Log(string message) => Console.WriteLine(message);
}

public class UserService
{
    private readonly ILogger _logger;

    // Dependency is passed through the constructor
    public UserService(ILogger logger)
    {
        _logger = logger;
    }

    public void CreateUser(string name)
    {
        // User creation logic
        _logger.Log($"User {name} created.");
    }
}

// Usage
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Alice");