使用Unity为每个应用程序部分提供两个版本的依赖关系的最佳方法?

时间:2016-03-07 01:34:55

标签: c# dependency-injection unity-container

我正在使用Unity和MVC5 .NET 4.6

  • 我有数据服务。
  • 这取决于存储库。
  • 反过来取决于连接。

连接需要用户名/令牌来建立连接或用户/应用程序guid以建立与数据源的连接。

MVC控制器和Web API都使用数据服务,但数据服务不应该关心它的使用方式。

  • 当我使用MVC控制器时,用户名和令牌就在 要求。
  • 当连接的应用程序使用API​​时,它必须传入 用户GUID和应用程序GUI。

当我向控制器注入数据服务时,Unity会新闻所有依赖项,注入存储库的数据服务以及注入连接的存储库。

问题是从当前控制器获取用户变量的最佳模式是什么?

1 个答案:

答案 0 :(得分:0)

您可以配置两个不同的容器,一个用于MVC,另一个用于Web API。或者,如果您有一个需要在MVC和Web API之间共享的服务(例如单件服务),您可以创建两个已有容器的子容器(调用25000000)并仅注册连接儿童容器。然后,您可以区分用于MVC和Web API的连接。