Injection de dépendances dans les contrôleurs dans Core | Microsoft Docs Passer au contenu principal Ce navigateur n'est plus pris en charge. Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique. Article 04/18/2022 5 minutes de lecture Cette page est-elle utile? Les commentaires seront envoyés à Microsoft: en appuyant sur le bouton envoyer, vos commentaires seront utilisés pour améliorer les produits et services Microsoft. Politique de confidentialité. Merci. Dans cet article Par Shadi Namrouti, Rick Anderson et Steve Smith Les contrôleurs Core MVC demandent les dépendances explicitement via des constructeurs. Core offre une prise en charge intégrée de l' injection de dépendances. L'injection de dépendances facilite le test et la maintenance des applications. Afficher ou télécharger l'exemple de code ( procédure de téléchargement) Injection de constructeurs Les services sont ajoutés sous forme de paramètre de constructeur, et le runtime résout les services à partir du conteneur de services.
GetRequiredService(): IScopedOperation [ anges only with scope] Scope 2-Call 2. GetRequiredService (): ISingletonOperation [ the same] À partir de la sortie de l'application, vous pouvez voir que: Transient les opérations sont toujours différentes, une nouvelle instance est créée avec chaque récupération du service. Scoped les opérations changent uniquement avec une nouvelle étendue, mais sont la même instance au sein d'une étendue. Singleton les opérations sont toujours les mêmes, une nouvelle instance n'est créée qu'une seule fois. Voir aussi Recommandations relatives à l'injection de dépendances Injection de dépendances dans Core
";}
else if ( < 17)
ViewData["Message"] = "It's afternoon here - Good Afternoon! ";}
else
ViewData["Message"] = "It's evening here - Good Evening! ";}
return View();}
Exécutez l'application et un message s'affiche en fonction de l'heure. Injection d'action avec FromServices
FromServicesAttribute permet d'injecter un service directement dans une méthode d'action sans utiliser l'injection de constructeurs:
public IActionResult About([FromServices] IDateTime dateTime)
return Content( $"Current server time: {}");}
Accéder aux paramètres à partir d'un contrôleur
L'accès aux paramètres de configuration ou d'application à partir d'un contrôleur est un modèle commun. le modèle d'options décrit dans modèle d'options dans Core est l'approche recommandée pour gérer les paramètres. En règle générale, n'injectez pas directement IConfiguration dans un contrôleur. Créez une classe qui représente les options. Exemple:
public class SampleWebSettings
public string Title { get; set;}
public int Updates { get; set;}}
Ajoutez la classe de configuration à la collection de services:
nfigure
Les services sont généralement définis à partir d'interfaces. Par exemple, prenons le cas d'une application qui a besoin de l'heure actuelle. L'interface suivante expose le service IDateTime:
public interface IDateTime
{
DateTime Now { get;}}
Le code suivant implémente l'interface IDateTime:
public class SystemDateTime: IDateTime
public DateTime Now
get { return;}}}
Ajoutez le service au conteneur de services:
public void ConfigureServices(IServiceCollection services)
dSingleton
Pokemon Gold Rom Ds, 2024