我正在尝试创建ASP。NET核心应用程序使用通用存储库模式,使用实体框架和服务层。然而,每当我启动项目时,都会遇到以下错误:
无法解析“GameSource”类型的服务。数据存储库。GameRepository“正在尝试激活”GameSource。服务。游戏服务'。
游戏控制器。反恐精英:
public class GamesController : Controller
{
private IGameService gameService;
public GamesController(IGameService gameService)
{
this.gameService = gameService;
}
}
游戏服务。反恐精英:
public class GameService : IGameService
{
private GameRepository gameRepo;
public GameService(GameRepository gameRepo)
{
this.gameRepo = gameRepo;
}
}
游戏存储库。反恐精英:
public class GameRepository : BaseRepository<Game>, IGameRepository
{
private GameSource_DBContext context;
private DbSet<Game> gameEntity;
public GameRepository(GameSource_DBContext context) : base(context)
{
this.context = context;
gameEntity = context.Set<Game>();
}
}
BaseRepository。反恐精英:
public class BaseRepository<T> : IBaseRepository<T> where T : class
{
private GameSource_DBContext context;
private DbSet<T> entity;
public BaseRepository(GameSource_DBContext context)
{
this.context = context;
entity = context.Set<T>();
}
}
GameSource_DBContext.cs:
public class GameSource_DBContext : DbContext
{
public GameSource_DBContext(DbContextOptions<GameSource_DBContext> options) : base(options)
{
}
public DbSet<Game> Game { get; set; }
public DbSet<Genre> Genre { get; set; }
public DbSet<Developer> Developer { get; set; }
public DbSet<Publisher> Publisher { get; set; }
public DbSet<Platform> Platform { get; set; }
}
启动。反恐精英:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews().AddRazorRuntimeCompilation();
services.AddDbContext<GameSource_DBContext>(options => options.UseSqlServer(Configuration.GetConnectionString("GameSource_DB")));
services.AddScoped(typeof(IBaseRepository<>), typeof(BaseRepository<>));
services.AddScoped<IGameRepository, GameRepository>();
services.AddScoped<IGameService, GameService>(); //Can't resolve service?
}
正如您在启动时所看到的,我正在尝试注入我的服务和我的存储库,但在尝试激活GameService时无法解析GameRepository的服务。我错过了什么吗?这是与实体框架(即回购服务层)一起使用的正确方法吗?
谢谢你的耐心等待。
在GameService中,将其更改为使用IGameRepository接口,如下所示:
public class GameService : IGameService
{
private IGameRepository gameRepo;
public GameService(IGameRepository gameRepo)
{
this.gameRepo = gameRepo;
}
}
仅供参考,GameRepository无法解析,因为您已将依赖注入配置为在构造函数(而非具体实现)中使用接口IGameRepository时注入存储库。
我创建了一个。NET核心MVC应用程序,并使用依赖项注入和存储库模式将存储库注入控制器。但是,我得到一个错误: 无法解析类型WebApplication ation1的服务。数据。BloggerRepository'同时尝试激活'WebApplication 1.控制器。BlogController'. 型号(Blog.cs) DbContext(BloggingContext.cs) 存储库(I
我创建了一个.NETCoreMVC应用程序,并使用依赖注入和存储库模式将存储库注入我的控制器。然而,我得到一个错误: 无法解析类型WebApplication1.Data.BloggerRepository的服务,而试图激活WebApplication1.Controllers.BlogController。 存储 库: 控制器: 启动. cs: 我不知道我做错了什么。有什么想法吗?
我正在创建viewcomponents,下面是我的全部代码。。但当我调用这个viewcomponent时,我得到如下错误。。所以,任何人都可以帮助我解决这个问题,并向我解释到底是什么问题。 错误是: InvalidOperationException:无法解析“Perfulmestore”类型的服务。数据模型。ShoppingCart正在尝试激活香水商店。视图组件。ShoppingCartSumm
在我的ASP. NET Core应用程序中,我收到以下错误: 无效操作异常:在尝试激活“城市”时无法解析类型“城市”的服务。模型。IRepository。控制器。HomeController。 我是家庭控制器,我试图将城市的getter传递给视图,如下所示: 我有一个文件存储库。cs包含一个接口及其实现,如下所示: 我的启动类包含从模板生成的默认代码。我做了任何更改:
问题内容: 我正在测试服务A,但是服务A取决于服务B(即服务B已注入服务A)。 我已经看到了这个问题,但是我的情况有所不同,因为我认为_模拟_ 服务B而不是注入服务B的实际实例更有意义。我将用茉莉间谍对其进行模拟。 这是一个示例测试: 我得到的错误是: 错误:未知提供程序:serviceBProvider 我该怎么做? 问题答案: 实际上,在AngularJS中,依赖注入使用“最后获胜”规则。因此
登录控制器中出现此错误。 无效操作异常:在尝试激活“汽车。服务器。控制器。AuthController”时,无法解析类型为“Microsoft. AspNetCore。身份。UserManager'1[汽车。模型。帐户]”的服务。 这是Auth Controller构造函数: 这里是启动中的ConfigureServices。反恐精英: