.net Core How To Get Service From Iservicecollection

3 min read Jun 03, 2024
.net Core How To Get Service From Iservicecollection

Obtenir un service depuis IServiceCollection dans .NET Core

Dans le développement .NET Core, IServiceCollection est un élément crucial pour la gestion des dépendances. Il vous permet de enregistrer et de récupérer des services au sein de votre application. Cet article vous guidera à travers le processus d'obtention d'un service à partir de IServiceCollection.

Comprendre IServiceCollection

IServiceCollection est une interface qui représente un conteneur de services. En termes simples, il s'agit d'un registre qui stocke toutes les informations nécessaires à la création et à la gestion des services dans votre application.

Obtenir un service enregistré

Pour obtenir un service à partir de IServiceCollection, vous devez suivre ces étapes :

  1. Obtenez l'instance IServiceCollection.

    Vous pouvez généralement accéder à IServiceCollection dans votre classe de démarrage (Startup.cs) pendant la méthode ConfigureServices.

  2. Utilisez la méthode GetService() ou GetRequiredService() pour récupérer le service.

    • GetService(): Retourne une instance du service demandé si elle est trouvée, sinon null.
    • GetRequiredService(): Retourne une instance du service demandé. Si le service n'est pas trouvé, une exception est levée.

Exemple:

public void ConfigureServices(IServiceCollection services)
{
    // Enregistrez le service
    services.AddTransient();

    // Obtenez le service
    IMyService myService = services.GetRequiredService();

    // Utilisez le service
    myService.DoSomething();
}

Enregistrement d'un service

Avant de pouvoir obtenir un service, vous devez l'enregistrer dans IServiceCollection. Il existe plusieurs méthodes d'enregistrement disponibles, telles que :

  • AddTransient(): Crée une nouvelle instance du service à chaque fois qu'elle est demandée.
  • AddScoped(): Crée une nouvelle instance du service pour chaque requête HTTP.
  • AddSingleton(): Crée une seule instance du service qui est partagée par toutes les requêtes.

Exemple:

public void ConfigureServices(IServiceCollection services)
{
    // Enregistrez un service de type `IMyService` avec une implémentation de `MyService`
    services.AddTransient();
}

Conclusion

IServiceCollection est une partie essentielle de la gestion des dépendances dans .NET Core. En comprenant comment enregistrer et récupérer des services à partir de IServiceCollection, vous pouvez créer des applications plus organisées, maintenables et testables. N'hésitez pas à explorer la documentation officielle de .NET Core pour plus d'informations sur les différentes fonctionnalités offertes par IServiceCollection.

Related Post


Featured Posts