我有一个项目,直到最近才使用Autofac作为DI的100%ASP.NET MVC5。我现在需要添加一个Web API功能,因此我在解决方案中创建了一个新的Web API项目,与MVC项目并列。我打算利用第三个项目中的现有服务层。
我的Autofac注册完全在MVC项目中。我今天大部分时间都在研究如何使用Autofac和Web API,我可以看到如何使用独立项目来完成它,我可以看到如何使用MVC和Web API的项目(在{{3中回答) }})。但我看不出如何将DI容器(在MVC项目中构建)设置为WebAPI项目中的DependencyResolver
。
是否可以通过这种方式在项目中注册容器?
答案 0 :(得分:2)
是否可以通过这种方式在项目中注册容器?
可能。
但实际上容器配置适用于单个应用程序。在两个不同的应用程序之间共享配置必然会有很多适用于一个或另一个应用程序的代码,以及一些适用于这两个应用程序的代码。这种情况可能会使理解和维护配置代码变得困难。
以这种方式思考composition root of the application is the configuration of the application。您不会在应用程序之间共享Collection
文件,那么为什么要共享DI配置?
当然,如果您只是将 WebAPI添加到现有应用程序中,您将无需拥有2个不同的配置,因为您只有1个应用程序。