我有一个包含一些控制器的 WebApi 应用程序(它们是使用扩展方法 RegisterApiControllers 注册的)。此应用程序引用了另一个程序集,其中包含我不想公开的其他控制器(我已检查它们是否未在容器中注册)。碰巧两者都有一个 OrderController,当我尝试访问 /api/Order url 时,我得到一个异常“找到与名为‘order’的控制器匹配的多种类型。” 堆栈跟踪显示我在 DefaultHttpControllerSelector 中。
我已经看到 AutofacControllerFactory 曾经存在,甚至还有一个注册它的 ConfigureWebApi,但它不再存在于默认分支中。(你可以在这里看到它http://alexmg.com/post/2012/03/09 /Autofac-ASPNET-Web-API-(Beta)-Integration.aspx )
似乎我们也无法在 WebApi 中过滤路由定义的命名空间(MVC 是可能的)。
那么关于如何仅使用在我的 Autofac 容器中注册的控制器而不使用似乎扫描所有引用的程序集以发现控制器的 DefaultHttpControllerSelector 的任何想法?
谢谢