tsyringe-使用重载构造函数注入依赖项

马特

嗨,朋友们,你好吗?

我正在尝试做一些不同的事情,我不知道它是否与概念本身背道而驰,但这将帮助我以一种优雅的方式实现我正在尝试做的事情。

我使用的是存储库模式,在实现中,我想使用重载的构造函数并使用可选的参数,基本上在需要时传递一些辅助信息。

问题是,当构造函数为空时,它工作得很好,但是当更改签名以接收另一个参数时,TSYSRINGE会抛出一个执行。

我真的认为我缺少了一些非常简单的东西,但是我不知道是什么。你能帮我这个忙吗?谢谢

错误:

Error: Cannot inject the dependency at position #0 of "ListProjectsServices" constructor. Reason:
    TypeInfo not known for "ProjectsRepository"

控制者

export default class ProjectsController {
  public async index(request: Request, response: Response): Promise<void> {
    const listProjectsServices = container.resolve(ListProjectsServices);
    const projects = await listProjectsServices.execute();
    response.json(projects);
  }

服务

@injectable()
export default class ListProjectsServices {

  constructor(
    @inject('ProjectsRepository')
    private ProjectsRepository: IProjectsRepository,
  ) {}

  public async execute(): Promise<Projects[]> {
    const ProjectsList = await this.ProjectsRepository.findAllProjects();
    return ProjectsList;
  }
}

容器-创建注入令牌


container.registerSingleton<IProjectsRepository>(
  'ProjectsRepository',
  ProjectsRepository,
);

存储库-注意构造函数中的extra_details参数

添加后,出现问题


@EntityRepository(Projects)
export default class ProjectsRepository implements IProjectsRepository {
  private ormRepository: Repository<Projects>;

  constructor(extra_details?: object) {
    this.ormRepository = getRepository(Projects);
  }
[...]
威廉·博尔巴·巴索斯

今天,我遇到了同样的问题。阅读文章的循环依赖。它告诉我们使用从tsyringe导入的延迟函数。在文章中,他告诉我们在构造函数内部使用延迟。但是您和我一样,不是直接在注入中发送对象,而是注册的密钥。然后,必须在容器文件中使用延迟,在存储库对象周围尝试以下操作:

import { container, delay } from 'tsyringe';

container.registerSingleton<IProjectsRepository>(
  'ProjectsRepository',
  delay(() => ProjectsRepository),
);

在所有依赖异步存储库的注入中插入延迟

seo ormconfig.json中的entities属性中也可能是错误。确保路径指向您的实体:

"entities": [
  "./src/modules/**/infra/typeorm/entities/*.ts"
],

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Tsyringe的Typescript动态依赖注入

来自分类Dev

尝试使用Tsyringe和Typeorm进行依赖注入时遇到问题

来自分类Dev

DryIoc-使用构造函数注入时指定依赖项

来自分类Dev

使用“构造函数范围”注入依赖项-Autofac

来自分类Dev

使用GreedyConstructorQuery和AutoMoqCustomization确实使用最贪婪的构造函数并注入依赖项

来自分类Dev

如何使用Ninject和MVC4将依赖项注入FluentValidation AbstractValidator构造函数中?

来自分类Dev

使用Unity.Mvc5注入依赖项时的多个控制器构造函数

来自分类Dev

如何使用注解通过Spring执行基于构造函数的依赖项注入?

来自分类Dev

在类主体中设置$ this-> something,不能使用构造函数依赖项注入

来自分类Dev

将依赖项注入控制器构造函数或使用属性

来自分类Dev

构造函数外部的Angular 2注入依赖项

来自分类Dev

在C#中向属性的构造函数注入依赖项

来自分类Dev

对Xsockets构造函数的依赖注入

来自分类Dev

构造函数中的依赖注入

来自分类Dev

在ASP.NET MVC 5中使用ControllerFactory在控制器的构造函数中进行依赖项注入

来自分类Dev

如何使用依赖注入添加构造函数参数

来自分类Dev

如何通过构造委托注入依赖项

来自分类Dev

使用AutoMoq属性模拟构造函数依赖项

来自分类Dev

使用 webpack 时,Angular 无法解析构造函数依赖项

来自分类Dev

具有状态构造函数参数的Akka .NET中的依赖项注入

来自分类Dev

ASP.Net 5配置依赖项注入和静态控制器构造函数

来自分类Dev

SignalR-结构构造函数依赖项注入:Signalr结构图解析器

来自分类Dev

与HttpContext中的参数一起通过构造函数依赖项注入

来自分类Dev

如何在vNext依赖项注入中创建构造函数订阅

来自分类Dev

如何在Prism的依赖项注入容器中指定构造函数参数?

来自分类Dev

单元测试:具有构造函数依赖项注入的模拟服务类

来自分类Dev

Guice构造函数注入了String依赖项(或其他未绑定的原语)?

来自分类Dev

angular dart中的依赖项注入如何知道要传递给装饰器构造函数的元素?

来自分类Dev

构造函数依赖注入WebApi属性

Related 相关文章

  1. 1

    使用Tsyringe的Typescript动态依赖注入

  2. 2

    尝试使用Tsyringe和Typeorm进行依赖注入时遇到问题

  3. 3

    DryIoc-使用构造函数注入时指定依赖项

  4. 4

    使用“构造函数范围”注入依赖项-Autofac

  5. 5

    使用GreedyConstructorQuery和AutoMoqCustomization确实使用最贪婪的构造函数并注入依赖项

  6. 6

    如何使用Ninject和MVC4将依赖项注入FluentValidation AbstractValidator构造函数中?

  7. 7

    使用Unity.Mvc5注入依赖项时的多个控制器构造函数

  8. 8

    如何使用注解通过Spring执行基于构造函数的依赖项注入?

  9. 9

    在类主体中设置$ this-> something,不能使用构造函数依赖项注入

  10. 10

    将依赖项注入控制器构造函数或使用属性

  11. 11

    构造函数外部的Angular 2注入依赖项

  12. 12

    在C#中向属性的构造函数注入依赖项

  13. 13

    对Xsockets构造函数的依赖注入

  14. 14

    构造函数中的依赖注入

  15. 15

    在ASP.NET MVC 5中使用ControllerFactory在控制器的构造函数中进行依赖项注入

  16. 16

    如何使用依赖注入添加构造函数参数

  17. 17

    如何通过构造委托注入依赖项

  18. 18

    使用AutoMoq属性模拟构造函数依赖项

  19. 19

    使用 webpack 时,Angular 无法解析构造函数依赖项

  20. 20

    具有状态构造函数参数的Akka .NET中的依赖项注入

  21. 21

    ASP.Net 5配置依赖项注入和静态控制器构造函数

  22. 22

    SignalR-结构构造函数依赖项注入:Signalr结构图解析器

  23. 23

    与HttpContext中的参数一起通过构造函数依赖项注入

  24. 24

    如何在vNext依赖项注入中创建构造函数订阅

  25. 25

    如何在Prism的依赖项注入容器中指定构造函数参数?

  26. 26

    单元测试:具有构造函数依赖项注入的模拟服务类

  27. 27

    Guice构造函数注入了String依赖项(或其他未绑定的原语)?

  28. 28

    angular dart中的依赖项注入如何知道要传递给装饰器构造函数的元素?

  29. 29

    构造函数依赖注入WebApi属性

热门标签

归档