Sobes.tech
Junior

What is Dependency Injection used for in C# development?

sobes.tech AI

Answer from AI

Dependency Injection (DI) in C# is used to manage dependencies between classes, which increases flexibility and testability of the code.

Main goals of DI:

  • Loosening coupling: classes do not create their dependencies directly but receive them from outside.
  • Simplifying testing: dependencies can be easily replaced with mocks or stubs.
  • Improving maintainability: changing the implementation of a dependency does not require changing the code that uses it.

Example:

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;
    public UserService(ILogger logger) {
        _logger = logger;
    }
    public void CreateUser(string name) {
        // user creation logic
        _logger.Log($"User {name} created.");
    }
}

// Dependency injection
var logger = new ConsoleLogger();
var userService = new UserService(logger);
userService.CreateUser("Alice");

Thus, DI promotes inversion of control (IoC) and improves application architecture.