Dependency Injection
Contexte : Une technique où un objet reçoit ses dépendances d’une source externe plutôt que de les créer lui‑même. Elle favorise un couplage lâche et la testabilité.
public interface IGreetingService{ string Greet(string name);}
public class GreetingService : IGreetingService{ public string Greet(string name) => $"Hello {name}";}
public class Consumer{ private readonly IGreetingService _greeting; public Consumer(IGreetingService greeting) => _greeting = greeting; public void Print(string name) => Console.WriteLine(_greeting.Greet(name));}
// Simple DI containervar services = new Dictionary<Type, object>();services[typeof(IGreetingService)] = new GreetingService();var consumer = new Consumer((IGreetingService)services[typeof(IGreetingService)]);consumer.Print("Alice");Exemple d’utilisation dans le monde réel
Section intitulée « Exemple d’utilisation dans le monde réel »Injection de dépendances intégrée d’ASP.NET Core : Les services sont enregistrés dans Program.cs et injectés dans les constructeurs des contrôleurs, middlewares et services. Permet les tests unitaires en remplaçant les dépendances réelles par des mocks.
Exemple : Documentation sur l’injection de dépendances ASP.NET Core. Services courants : ILogger<T>, DbContext, IHttpClientFactory. Également des conteneurs tiers comme Autofac, Unity.