我创建了一个通用服务,我希望提供多次服务,包括通用服务。我尝试了以下解决方案。
使用 useFactory 提供。这给我一个错误,因为我的 GenericRepository 在构造函数中有一些 DI 服务,现在它希望我能够通过。我不知道。
{
provide: USERS_REPOSITORY_TOKEN,
useFactory: () => (new GenericRepository<ApplicationUser>())
},
{
// Provide a few more generic repositories
}
使用useClass
提供。这给了我<ApplicationUser>
部分的错误:Value of type 'typeof GenericRepository' is not callable. Did you mean to include 'new'?
{
provide: USERS_REPOSITORY_TOKEN,
useClass: GenericRepository<ApplicationUser>
},
{
// Provide a few more generic repositories
}
到目前为止,我找到了一个解决这些问题的解决方案,但是我认为这很丑陋,因为我最终只能得到大约10个我的 GenericRepository 提供的商品和多个 DI 存储库中的参数。
{
provide: USERS_REPOSITORY_TOKEN,
deps: [LoggingService],
useFactory: (loggingService: LoggingService) => {
return new GenericRepository<ApplicationUser>(loggingService);
}
},
{
// Provide a few more generic repositories
}
谢谢!