C# 如何在.NET Core 2.2中注册通用接口

C# 如何在.NET Core 2.2中注册通用接口,c#,generics,.net-core,.net-core-2.2,C#,Generics,.net Core,.net Core 2.2,我正在尝试创建一个新的.NETCoreAPI,其中包含通用存储库和服务,其中每种类型都有自己的接口和相应的实现。我创建了一个通用存储库和服务结构,但我似乎无法在startup.cs中获得正确的注册,或者我在做其他错误的事情。任何帮助都将不胜感激 我有一个已正确注册的通用存储库,名为:IRepository,在我的控制器中,此回购按预期工作 我有一个名为:UserService的服务,它继承自service 服务实现iSeries设备其中T为类型,R为IRepository services.ad

我正在尝试创建一个新的.NETCoreAPI,其中包含通用存储库和服务,其中每种类型都有自己的接口和相应的实现。我创建了一个通用存储库和服务结构,但我似乎无法在
startup.cs
中获得正确的注册,或者我在做其他错误的事情。任何帮助都将不胜感激

我有一个已正确注册的通用存储库,名为:
IRepository
,在我的控制器中,此回购按预期工作

我有一个名为:
UserService
的服务,它继承自
service

服务
实现
iSeries设备
其中T为类型,R为
IRepository

services.addScope(typeof(IUserService),typeof(UserService));
创建以下错误:

InvalidCastException:无法将API.Services.UserService类型的对象强制转换为API.Interfaces.IUserService类型

services.addScope(typeof(IService),typeof(UserService));
创建以下错误:

InvalidOperationException:尝试激活API.Controllers.UserController时,无法解析API.Interfaces.IUserService类型的服务

伊瑟薇

公共接口iSeries设备
其中T:BaseEntity
其中R:i假定
{}
IUserService

公共接口IUserService:IService{}
用户服务

公共用户服务(
IRepository用户存储库,
眼压

我希望注册是正确的,因为没有错误,但当我运行解决方案并执行请求时,我得到了500个以上错误。有人能指出我做错了什么吗?我显然不理解这里非常重要的内容。提前感谢!

和的评论为我指明了正确的方向。

我删除了
Service
-类,并在
UserService

在my startup.cs中,所有这些功能都是通过向实现注册我的接口来实现的,如下所示:
services.AddScoped(typeof(IUserService),typeof(UserService));


我是盲目的,我试图用一个解决方案来解决这个问题,而这个解决方案反过来又导致了这个错误。感谢大家来到我身边,我的程序员们!我爱你们大家!

用户服务的声明是什么
你确定
UserService
实现了接口吗?
内部类UserService:IUserService
,尝试使用
AddScoped()命令
该方法的版本,因为它应该在编译时捕获这些错误。@Silvermind UserService类是这样实现的:
公共类UserService:Service
为什么
UserService
不实现
IUserService
?如果可以,应该使用通用版本:
services.AddScoped()
这样就省去了麻烦。它“强制”实现接口。