【发布时间】:2011-05-31 19:26:57
【问题描述】:
是否可以使用 Unity 从共享位置或 GAC 引用程序集?
假设我有两个项目(在同一个解决方案下):
- MyProject.Data(存储库接口)
- MyProject.Data.EntityFramework(存储库实体框架实现)
我想在同样属于同一解决方案的 ASP.NET MVC 应用程序 (MyProject.Web) 中使用 IoC,但我不想同时为接口和实现添加项目引用。理想情况下,我想向接口添加项目引用,并从共享位置或 GAC 加载实现。这可以防止 MyProject.Web 中的任何代码创建特定实现的实例 - 这应该始终由 IoC 提供者完成。
我可以决定创建一个 nHibernate 实现,而 IoC 将使切换变得更加容易。如果有任何直接耦合,那将是一场噩梦。这让我回到了这个问题。让我们消除开发人员在不询问 IoC 容器如何解析接口的情况下实例化具体实现的可能性。
【问题讨论】:
标签: asp.net interface inversion-of-control unity-container gac