c# - c# 类从基类继承,带有依赖注入的构造函数
问题描述
我有一个使用Dependency Injection
(Ninject)的项目,其中有以下课程:
public class SecurityService : BaseService
{
ISecurityRepository _securityRepo = null;
public SecurityService(ISecurityRepository securityRepo)
{
_securityRepo = securityRepo;
}
}
因为BaseService
将在许多其他服务类中引用,所以我想在那里添加一个方法,该方法也可以转到 Data Repository 并获取一些信息,因此我不必在其他服务类中重复相同的代码。
这是我所拥有的BaseRepository
:
public partial class BaseService
{
IEntityRepository _entityRepo = null;
public BaseService(IEntityRepository entityRepo)
{
_entityRepo = entityRepo;
}
public Settings AppSettings
{
get
{
return _entityRepo.GetEntitySettings();
}
}
}
但是当我编译时出现以下错误:
There is no argument given that corresponds to the required formal parameter 'entityRepo' of 'BaseService.BaseService(IEntityRepository)'
这个错误是有道理的,因为现在我有一个构造函数,我猜它正在期待一些东西。
任何线索如何解决这个问题,但我仍然可以在
BaseRepository
课堂上进行依赖注入?
更新
我只是试图删除构造函数并使用该属性[Inject]
,但在调试时我看到它_entityRepo
是NULL
.
解决方案
通过子类构造函数将 Repository 对象传递给基类:
public SecurityService(ISecurityRepository securityRepo) : base(IEntityRepository)
{
//Initialize stuff for the child class
}
推荐阅读
- javascript - 带有推送功能的打字稿数组 foreach (Angular)
- hyperledger-fabric - Hypereldger Fabric 管理员证书和 tls 证书已过期
- html - 如何添加提交按钮,并指定表单应该转到“/action_page.php”?
- ruby - Puma 如何允许并行完成 IO 等待以提高 MRI 的吞吐量?
- kerberos - kinit 要求输入密码,尽管 pki 配置
- sql - Postgresql - 将字符串与空值进行比较
- javascript - 错误:尝试使用 nodemon 运行时找不到模块
- html - 在两个固定元素之间添加间距
- javascript - 如何在 datetimepicker 上添加多项选择功能
- asp.net-mvc - 从布局访问会话数据