【问题标题】:How to use inversifyjs container as service locator如何使用 inversifyjs 容器作为服务定位器
【发布时间】:2018-06-15 09:40:20
【问题描述】:


我正在为我的 IOT 项目(stm32f100 + WIFI esp)编写套接字服务器
我已经实现了 GET 查询等通信协议:
方法=test&data[]=1&data[]=2...等
我想实现方法解析器,它将通过方法名称从 inversifyjs 容器及其依赖项中获取服务(控制器)
,但我找不到如何将容器注入方法解析器

【问题讨论】:

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


    【解决方案1】:

    你可以有多个控制器:

    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");
    

    【讨论】:

    • 我想将容器注入到服务中,该服务将从中获取控制器。问题是:我怎么能做到这一点
    猜你喜欢
    • 1970-01-01
    • 2012-10-20
    • 2011-11-03
    • 2011-02-07
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 2021-09-06
    • 2017-12-08
    相关资源
    最近更新 更多