Maison >développement back-end >C++ >Comment puis-je résoudre manuellement les instances dans la méthode « ConfigureServices() » d'ASP.NET Core ?
Injection de dépendances ASP.NET Core : résolution manuelle des instances dans ConfigureServices()
La maîtrise de la résolution manuelle des instances au sein du système d'injection de dépendances d'ASP.NET Core MVC, en particulier au sein de la méthode ConfigureServices()
, offre un contrôle granulaire sur la gestion des services. Bien que IServiceCollection
simplifie l'enregistrement du service (par exemple, en utilisant AddTransient
), il ne prend pas directement en charge la résolution d'instance. Cet article explore les techniques permettant de résoudre les instances sans recourir à l'injection de constructeur.
La résolution directe au sein de ConfigureServices()
n'est pas simple. Le IServiceCollection
propose une méthode BuildServiceProvider()
pour créer un IServiceProvider
temporaire. Cela permet d'accéder aux services enregistrés avant l'BuildServiceProvider()
appel, mais pas aux services enregistrés ultérieurement. Cette limitation est cruciale à comprendre.
Une alternative, reflétant la fonctionnalité du modèle d'options, consiste à lier les valeurs de configuration directement à une instance. Ceci peut être réalisé en utilisant la méthode Bind()
sur votre section IConfiguration
. Par exemple, vous pouvez lier les valeurs de IConfiguration
à une instance de MyOptions
.
Il est important de souligner que la résolution des services au sein de ConfigureServices()
constitue généralement un anti-modèle souvent appelé modèle « Service Locator ». Cette pratique est généralement déconseillée. Cependant, des scénarios spécifiques, en particulier au sein des composants du cadre ou de l'infrastructure, peuvent nécessiter cette approche. Une attention particulière doit être accordée avant d'utiliser cette méthode.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!