问题描述
我一直试图理解Inverseify @tagged和@named绑定之间的区别。我似乎找不到任何定义两者之间差异的文档。它们似乎是同义词。
此外,在使用容器的autoBindInjectable
设置时,我更加困惑如何/在何处定义对象的标记或名称。似乎没有办法使用B
注释。使用标识符将对象绑定什么?它使用Class作为标识符吗?
我确实看到inversify-binding-decorators库添加了@injectable()
和@provide()
装饰器,但是这是否完全消除了对@fluentProvide().whenTargetTagged()
装饰器的需要?
文档表明:
@injectable()
但是,除了通用文档之外,它没有显示/指示如何使用let container = new Container({ autoBindInjectable: true });
container.isBound(Ninja); // returns false
container.get(Ninja); // returns a Ninja
container.isBound(Ninja); // returns true
批注来进行自动绑定:
@injectable()
但是您如何定义@injectable()
class Ninja implements Warrior {}
或@tagged
绑定?并且有理由选择@named
而不是@tagged
吗?还是使用@named
库的唯一方法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)