.net Iservicecollection Configure

4 min read Jun 04, 2024
.net Iservicecollection Configure

Configurer les services avec IServiceCollection dans .NET

Le cœur de la gestion des dépendances dans .NET repose sur IServiceCollection. Cette interface, présente dans le package Microsoft.Extensions.DependencyInjection, joue un rôle crucial dans la configuration de la manière dont les services sont instanciés et injectés dans votre application.

Comprendre IServiceCollection

IServiceCollection est un type générique qui fournit une collection de descriptions de service. Chaque description contient des informations sur la façon dont un service particulier doit être instancié et utilisé. Vous utilisez IServiceCollection pour enregistrer les services et leurs configurations dans le conteneur d'injection de dépendances.

Utilisation de IServiceCollection

Pour utiliser IServiceCollection, vous avez besoin d'une instance du conteneur de service. Vous pouvez obtenir cette instance à partir de IHostBuilder dans une application .NET, ou de WebApplicationBuilder dans une application ASP.NET Core.

Voici un exemple de base sur la façon d'enregistrer un service avec IServiceCollection:

public void ConfigureServices(IServiceCollection services)
{
    // Enregistrer un service de type "MyService"
    // en utilisant l'interface "IMyService"
    services.AddTransient();
}

Dans ce code :

  • services est l'instance de IServiceCollection obtenue du conteneur de service.
  • AddTransient est une méthode d'extension qui enregistre le service en tant que "transient". Cela signifie qu'une nouvelle instance de MyService sera créée à chaque fois qu'un service de type IMyService est demandé.

Différents types de durée de vie

IServiceCollection prend en charge différents types de durées de vie pour les services, chacun ayant un impact sur la façon dont les instances sont créées et gérées. Voici les principaux types:

  • Transient: Une nouvelle instance du service est créée à chaque demande.
  • Scoped: Une seule instance du service est créée par requête HTTP.
  • Singleton: Une seule instance du service est créée et partagée dans toute l'application.

Configuration avancée

IServiceCollection offre des options avancées pour la configuration des services, notamment:

  • Configuration de l'usine: Vous pouvez spécifier une fabrique qui crée des instances de service en utilisant la méthode AddTransient, AddScoped ou AddSingleton avec un argument de type fonction déléguée.

  • Paramètres de configuration: Vous pouvez injecter des paramètres de configuration dans les services en utilisant la méthode Configure avec un argument de type fonction déléguée.

  • Ajout d'autres services: Vous pouvez ajouter d'autres services, tels que des services d'authentification et d'autorisation, en utilisant des méthodes d'extension spécifiques.

Conclusion

IServiceCollection est un outil puissant et flexible pour la configuration de la gestion des dépendances dans .NET. En maîtrisant les concepts de base et les options avancées, vous pouvez garantir une architecture d'application bien structurée et facilement extensible.

Featured Posts