Inversify:具有类名的上下文注入

时间:2017-06-01 15:49:42

标签: node.js typescript logging inversion-of-control inversifyjs

我正在尝试使用inversify将记录器注入不同的类。我想将目标类名传递给记录器以对其进行分类。

问题是我无法从我创建绑定的位置访问目标名称:

container.bind<log4js.Logger>(Types.Logger).toDynamicValue(context => {
    let className = context....?; // Finds class name
    return log4js.getLogger(className);
});

除了在接收记录器的对象中创建记录器后设置它之外,还有其他方法吗?

谢谢!

安托

1 个答案:

答案 0 :(得分:2)

更新
这个new feature可以从上下文中访问类名。这个名字虽然会缩小。这可以通过与班级进行比较来解决。

container.bind<Warrior>(TYPE.Warrior)to(Ninja).inActivation((context) => {
    const currentClass = context.currentRequest.bindings[0].implementationType;
    if (currentClass) {
        if (currentClass === Ninja) {
            // ...
        }
    }

原帖
感谢您提出这个问题。您目前无法找到它,但我在GitHub中创建了一个问题,以确保我们对此有所帮助。您可以在https://github.com/inversify/InversifyJS/issues/576

了解有关它的更多信息