.net 6 Console App Register Services

3 min read Jun 03, 2024
.net 6 Console App Register Services

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

  1. Créer un projet console .NET 6:

    dotnet new console -o MyConsoleApp
    
  2. Créer une interface de service:

    public interface IMyService
    {
        string GetGreeting();
    }
    
  3. Créer une classe de service qui implémente l'interface:

    public class MyService : IMyService
    {
        public string GetGreeting()
        {
            return "Bonjour du monde !";
        }
    }
    
  4. 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 service MyService comme implémentation de l'interface IMyService. Le type AddTransient indique que chaque fois qu'une instance de IMyService est demandée, une nouvelle instance de MyService sera créée.
  • var myService = app.Services.GetRequiredService<IMyService>();: Cette ligne récupère l'instance du service IMyService à 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.

Related Post