我正在将一系列控制器集成到现有项目中,该项目已经包含使用Castle Windsor进行DI / IoC的控制器。我已将安装程序修改为仅在某个名称空间(特别是根目录)中注册控制器。这种修改似乎有效。当我尝试访问我的控制器,它不使用Castle Windsor并且位于不同的命名空间(特别是自定义区域)时,我收到错误消息:“找不到支持服务[控制器名称]的组件”。
是否可以将“传统”控制器与使用Castle Windsor的控制器混合在一个项目中?
这有意义吗?
答案 0 :(得分:1)
如果您收到该错误,则尝试通过容器(直接或间接)解析控制器。
如果你有一个单独的逻辑路径,需要一个没有从容器注册的控制器,没有什么能阻止你调用new MyController()
。
顺便说一下,根据控制器使用来考虑容器有点倒退。容器管理您的实例 - 您的实例不知道它们是否是容器管理的。