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.