Sobes.tech
Junior

¿Para qué sirve la inyección de dependencias en el desarrollo en C#?

sobes.tech AI

Respuesta de la IA

La inyección de dependencias (DI) en C# se utiliza para gestionar las dependencias entre clases, lo que aumenta la flexibilidad y la capacidad de prueba del código.

Objetivos principales de DI:

  • Debilitar el acoplamiento: las clases no crean sus dependencias directamente, sino que las reciben desde fuera.
  • Simplificar las pruebas: es fácil reemplazar las dependencias por mocks o stubs.
  • Mejorar la mantenibilidad: cambiar la implementación de una dependencia no requiere modificar el código que la usa.

Ejemplo:

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) {
        // lógica de creación de usuario
        _logger.Log($"Usuario {name} creado.");
    }
}

// Inyección de dependencia
var logger = new ConsoleLogger();
var userService = new UserService(logger);
userService.CreateUser("Alice");

De esta manera, DI favorece la inversión de control (IoC) y mejora la arquitectura de la aplicación.