【问题标题】:InversifyJS: Inject a specific concretion from a multi-inject definitionInversifyJS:从多注入定义中注入特定的混凝土
【发布时间】:2019-08-04 03:31:36
【问题描述】:

假设我在 InversifyJS 中使用多重注入,就像在 official example 中一样:

container.bind<Ninja>("Ninja").to(Ninja);
container.bind<Weapon>("Weapon").to(Katana);
container.bind<Weapon>("Weapon").to(Shuriken);

是否可以从绑定的结核中注入特定的结核? 例如。我想明确地注入 Katana 凝结物,我该怎么做?我不想使用多注入和迭代/访问数组。 就我而言,我需要在一个地方进行多次注射,在另一个地方进行一次注射。

这不起作用,因为它给出了一个模棱两可的定义错误:

@inject("Weapon") private weapon: Katana

【问题讨论】:

    标签: javascript dependency-injection inversifyjs


    【解决方案1】:

    查看named bindings。 或tagged bindings。还有default targets

    container.bind<Weapon>("Weapon").to(Katana).whenTargetNamed("strong");
    container.bind<Weapon>("Weapon").to(Shuriken).whenTargetNamed("weak");
    
    @inject("Weapon") @named("strong") katana: Weapon,
    @inject("Weapon") @named("weak") shuriken: Weapon
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-16
      • 1970-01-01
      • 2022-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      相关资源
      最近更新 更多