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 :
-
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
. -
Utilisez la méthode
GetService()
ouGetRequiredService()
pour récupérer le service.GetService()
: Retourne une instance du service demandé si elle est trouvée, sinonnull
.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.