Enregistrement de services dans une application console .NET 6
Dans ce guide, nous allons explorer comment enregistrer des services dans une application console .NET 6. Cette pratique est essentielle pour la création d'applications modulaires, testables et maintenables.
Pourquoi enregistrer des services ?
L'enregistrement de services dans .NET 6, via l'injection de dépendances, offre plusieurs avantages :
- Modularité: Séparation des responsabilités et meilleure organisation du code.
- Testabilité: Facilite la création de tests unitaires et d'intégration.
- Maintenabilité: Simplifier les modifications et les mises à jour.
- Réutilisabilité: Permettre de réutiliser facilement des composants dans différents projets.
Étapes pour enregistrer des services
-
Créer un projet console .NET 6:
dotnet new console -o MyConsoleApp
-
Créer une interface de service:
public interface IMyService { string GetGreeting(); }
-
Créer une classe de service qui implémente l'interface:
public class MyService : IMyService { public string GetGreeting() { return "Bonjour du monde !"; } }
-
Configurer l'enregistrement de services dans le
Program.cs
:using Microsoft.Extensions.DependencyInjection; using MyConsoleApp; var builder = WebApplication.CreateBuilder(args); // Enregistrement des services builder.Services.AddTransient
(); var app = builder.Build(); // Injection du service var myService = app.Services.GetRequiredService (); Console.WriteLine(myService.GetGreeting()); app.Run();
Explication du code
builder.Services.AddTransient<IMyService, MyService>();
: Cette ligne enregistre le serviceMyService
comme implémentation de l'interfaceIMyService
. Le typeAddTransient
indique que chaque fois qu'une instance deIMyService
est demandée, une nouvelle instance deMyService
sera créée.var myService = app.Services.GetRequiredService<IMyService>();
: Cette ligne récupère l'instance du serviceIMyService
à partir du conteneur de services.
Différents types d'enregistrement
AddTransient
: Crée une nouvelle instance du service à chaque requête.AddScoped
: Crée une nouvelle instance du service par requête HTTP (pour les applications web) ou par contexte d'exécution (pour les applications console).AddSingleton
: Crée une seule instance du service pour toute la durée de vie de l'application.
Conclusion
L'enregistrement de services est un concept fondamental pour le développement d'applications .NET 6. En utilisant l'injection de dépendances, vous pouvez créer des applications plus modulaires, testables et maintenables. N'hésitez pas à expérimenter les différents types d'enregistrement pour choisir celui qui correspond le mieux à vos besoins.