如何使用inversifyjs容器作为服务定位器

时间:2018-01-05 14:48:32

标签: node.js typescript dependency-injection service-locator inversifyjs


我为我的物联网项目(stm32f100 + WIFI esp)编写套接字服务器 我已经实现了GET查询等通信协议:
方法=试验&安培;数据[] = 1&安培;数据[] = 2 ...等
我想实现方法解析器,它将通过方法名称从inversifyjs容器获取服务(控制器)
与它的依赖关系,但我无法找到如何将容器注入方法解析器

1 个答案:

答案 0 :(得分:0)

您可以拥有多个控制器:

container.bind<Controller>("Controller")
    .to(TestController)
    .whenTargetNamed("test");

container.bind<Controller>("Controller")
    .to(UserController)
    .whenTargetNamed("user");

container.bind<Controller>("Controller")
    .to(OrderController)
    .whenTargetNamed("order");

...

然后您可以实现以下内容:

function getService(service: string) {
    container.getNamed<Controller>("Controller", service);
}

然后您可以根据方法参数解决:

const orderController = getService("order");
const userController = getService("user");