我有一个项目解决方案,Api(WebApi项目)和Domain(库项目)。我使用Unity作为我的IoC。域依赖于Lib(第三方库)。我想要RegisterType();在我的Unity注册中,它位于Api项目中。
建议的方法是什么?
答案 0 :(得分:1)
1)在Web API项目中引用第三方和Domain,并在Web API中设置容器。
设置容器的最佳位置是应用程序的所谓composition root
。因此,例如,如果您使用的是自托管主机,则该主机项目将引用所有其他主机并执行容器设置。如果您的Web API主机只是一个ASP.NET应用程序,那么您应该在Application_Start
方法中连接依赖项,这意味着该项目必须引用所有其他项。
所以你可以拥有以下项目(每个项目都参考前面的所有项目):