当前位置: 首页 > 知识库问答 >
问题:

ASP。NET Core依赖项注入错误:尝试激活时无法解析类型的服务-调用viewcomponent[重复]时出错

狄德泽
2023-03-14

我正在创建viewcomponents,下面是我的全部代码。。但当我调用这个viewcomponent时,我得到如下错误。。所以,任何人都可以帮助我解决这个问题,并向我解释到底是什么问题。

错误是:

InvalidOperationException:无法解析“Perfulmestore”类型的服务。数据模型。ShoppingCart正在尝试激活香水商店。视图组件。ShoppingCartSummaryViewComponent’。

首先,我创建了一个名为ViewComponents的文件夹,其中我创建了一个名为ShoppingCartSummaryViewComponent的新类。cs和以下是代码。

using Microsoft.AspNetCore.Mvc;
using PerfumeStore.Data.Models;
using PerfumeStore.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace PerfumeStore.ViewComponents
{
    public class ShoppingCartSummaryViewComponent : ViewComponent
    {
        private readonly ShoppingCart _shoppingCart;
        public ShoppingCartSummaryViewComponent(ShoppingCart shoppingCart)
        {
            _shoppingCart = shoppingCart;
        }

        public IViewComponentResult Invoke()
        {
            var items = _shoppingCart.GetShoppingCartItems();
            _shoppingCart.ShoppingCartItems = items;

            var shoppingCartViewModel = new ShoppingCartViewModel
            {
                ShoppingCart = _shoppingCart,
                ShoppingCartTotal = _shoppingCart.GetShoppingCartTotal()
            };

            return View(shoppingCartViewModel);
        }
    }
}

现在cshtml文件在这个路径下面:在Views/Shared/Components/ShoppingCart汇总 /Default.cshtml

@model ShoppingCartViewModel

@if (Model.ShoppingCart.ShoppingCartItems.Count > 0)
{
    <li>
        <a asp-controller="ShoppingCart">
            <span class="glphyicon glphyicon-shopping-cart"></span>
            <span id="cart-status">
                @Model.ShoppingCart.ShoppingCartItems.Count
            </span>
        </a>
    </li>
}

现在在我的\u布局中。cshtml文件我用这种方式调用这个viewcomponent。

<div class="collapse navbar-collapse" id="navbarSupportedContent">
            <ul class="navbar-nav mr-auto">
                @await Component.InvokeAsync("ShoppingCartSummary")
            </ul>
        </div>

但我有一个错误:

InvalidOperationException:无法解析“Perfulmestore”类型的服务。数据模型。ShoppingCart正在尝试激活香水商店。视图组件。ShoppingCartSummaryViewComponent’。

谢谢

共有2个答案

屈浩波
2023-03-14

在启动中的ConfigureService方法注册类。cs文件

services.AddScoped<ShoppingCart>();
庾才
2023-03-14

依赖于您的依赖生命周期(瞬态、作用域、单例),您可以在启动中注册它。cs作为:

瞬态:

services.AddTransient<IMyDependency, MyDependency>();

范围:

services.AddScoped<IMyDependency, MyDependency>();

单件:

services.AddSingleton<IMyDependency, MyDependency>();

你可以在官方文件中阅读更多内容

注意:如果您的ShoppingCart类没有接口,您可以在注册服务时操作基本类型。添加瞬态

 类似资料:
  • 我创建了一个。NET核心MVC应用程序,并使用依赖项注入和存储库模式将存储库注入控制器。但是,我得到一个错误: 无法解析类型WebApplication ation1的服务。数据。BloggerRepository'同时尝试激活'WebApplication 1.控制器。BlogController'. 型号(Blog.cs) DbContext(BloggingContext.cs) 存储库(I

  • 我正在尝试创建ASP。NET核心应用程序使用通用存储库模式,使用实体框架和服务层。然而,每当我启动项目时,都会遇到以下错误: 无法解析“GameSource”类型的服务。数据存储库。GameRepository“正在尝试激活”GameSource。服务。游戏服务'。 游戏控制器。反恐精英: 游戏服务。反恐精英: 游戏存储库。反恐精英: BaseRepository。反恐精英: GameSource

  • 我创建了一个.NETCoreMVC应用程序,并使用依赖注入和存储库模式将存储库注入我的控制器。然而,我得到一个错误: 无法解析类型WebApplication1.Data.BloggerRepository的服务,而试图激活WebApplication1.Controllers.BlogController。 存储 库: 控制器: 启动. cs: 我不知道我做错了什么。有什么想法吗?

  • 在我的ASP. NET Core应用程序中,我收到以下错误: 无效操作异常:在尝试激活“城市”时无法解析类型“城市”的服务。模型。IRepository。控制器。HomeController。 我是家庭控制器,我试图将城市的getter传递给视图,如下所示: 我有一个文件存储库。cs包含一个接口及其实现,如下所示: 我的启动类包含从模板生成的默认代码。我做了任何更改:

  • 我正在尝试在我的项目中导入库。来自IntelliJ IDE 15.0.2的sbt。我不断收到未解决的依赖项错误。我试图从不同的论坛更新设置来解决这个问题,但没有一个有效。我尝试了几件事: 更新sbtconfig。带有代理设置的txt, 从项目设置中清理缓存并使其无效/重新启动 删除。sbt。ivy2文件夹,重新启动IDE并启动项目。还是没用 以下是我现在不断遇到的错误: