Maison > développement back-end > C++ > Pourquoi mon application .NET Core MVC ne parvient-elle pas à injecter une dépendance de référentiel ?

Pourquoi mon application .NET Core MVC ne parvient-elle pas à injecter une dépendance de référentiel ?

Susan Sarandon
Libérer: 2025-01-23 18:09:12
original
763 Les gens l'ont consulté

Erreur d'injection de dépendances de l'application .NET Core MVC : impossible de résoudre les dépendances pour l'interface

Description du problème

Une application .NET Core MVC a rencontré une erreur en essayant d'injecter une dépendance de référentiel dans un contrôleur. Le message d'erreur est le suivant :

<code>InvalidOperationException: Unable to resolve service for type 'WebApplication1.Data.BloggerRepository' while attempting to activate 'WebApplication1.Controllers.BlogController'.</code>
Copier après la connexion

Analyse

Cette erreur indique que l'application ne peut pas créer une instance de la classe BloggerRepository à transmettre au constructeur BlogController. Bien que BloggerRepository soit inscrit dans la classe startup :

<code class="language-csharp">services.AddScoped<IBloggerRepository, BloggerRepository>();</code>
Copier après la connexion

Solution

Le problème est que la classe contrôleur demande directement la classe BloggerRepository concrète. Cependant, le conteneur d'injection de dépendances sait uniquement créer des instances de l'interface IBloggerRepository. Pour résoudre cette erreur, le contrôleur doit être ajusté pour accepter l'interface :

<code class="language-csharp">public BlogController(IBloggerRepository repository)
{
    _repository = repository;
}</code>
Copier après la connexion

Autres consignes

Pour les packages NuGet externes, assurez-vous de vérifier leur documentation car ils peuvent avoir des exigences d'enregistrement spécifiques. Par exemple, pour résoudre un message d'erreur concernant IHttpContextAccessor :

<code>Unable to resolve service for type 'Microsoft.AspNetCore.Http.IHttpContextAccessor' ...</code>
Copier après la connexion

La solution est d'utiliser une méthode d'extension personnalisée :

<code class="language-csharp">services.AddHttpContextAccessor();</code>
Copier après la connexion

Why Does My .NET Core MVC Application Fail to Inject a Repository Dependency?

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal