C# 如何在.NET Core 2.2中注册通用接口
我正在尝试创建一个新的.NETCoreAPI,其中包含通用存储库和服务,其中每种类型都有自己的接口和相应的实现。我创建了一个通用存储库和服务结构,但我似乎无法在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
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()
这样就省去了麻烦。它“强制”实现接口。