【发布时间】:2021-01-08 20:16:21
【问题描述】:
我正在尝试使用 tsyringe 实现级联。
我有一个必须注入到必须注入控制器类的服务类中的单例数据库类:
@injectable()
class DashboardDAO implements IDashboardDAO {...}
@injectable()
class DashboardService implements IDashboardService {
construtor(@inject('DashboardDAO') private dashboardDao: IDashboardDAO){}
}
@injectable()
class DashboardController {
construtor(@inject('DashboardService') private dashboardService: IDashboardService){}
}
在我的容器中,我有以下配置。
/** REPOSITORIES */
container.registerSingleton<IDashboardDAO>('DashboardDAO', DashboardDAO);
/** SERVICES */
container.registerSingleton<IDashboardService>('DashboardService', DashboardService);
我想用注入的所有东西来实例化控制器,像这样:
const controller = container.resolve(DashboardController);
无法解决...我收到以下错误:
尝试解析未注册的依赖令牌
如果我执行下面的代码可以正常工作,但我想通过所有注入来解析控制器。
container.resolve(DashboardService);
有人知道为什么吗?
谢谢!
【问题讨论】:
-
container.resolve('DashboardService')工作吗? -
可以用而且我不用注册服务,参数DashboardService必须是类名而不是字符串
标签: typescript dependency-injection