Maison >développement back-end >C++ >Pourquoi mon application .NET Core MVC ne parvient-elle pas à injecter une dépendance de référentiel ?
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>
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>
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>
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>
La solution est d'utiliser une méthode d'extension personnalisée :
<code class="language-csharp">services.AddHttpContextAccessor();</code>
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!