.NET使用传递依赖/引用

时间:2011-09-08 17:14:53

标签: .net reference n-tier-architecture transitive-dependency

我有一个包含3个项目的Visual Studio解决方案:

  • MyWebSite(A)
  • BusinessModel(B)
  • 持久性(C)

Persistence,项目C,取决于NHibernate并包含所有存储库接口,这些存储库的Hibernate实现以及映射到数据库表的类

BusinessModel,项目B,取决于C,并包含代表业务域实体的所有服务类和类。这些服务使用存储库来检索数据,然后将这些数据转换为业务表示形式的表面。

MyWebSite,项目A,取决于A并包含所有MVC类/文件。这里的MVC控制器使用B中的服务类来执行任何业务逻辑功能。这个级别没有任何知识,项目B使用项目C的存储库来执行其操作。

在一个完美的世界中,我认为项目A应该引用B引用C引用NHibernate。这似乎不是真的。我发现项目A需要引用B C以及NHibernate我不喜欢我需要的Web应用程序的想法了解我的后端架构,我特别不希望它意识到我使用NHibernate作为我的ORM这一事实。

有没有办法告诉这些项目在解析引用时使用传递依赖?

我的项目是Visual Studio 2010中的.NET 4,如果该信息有所不同。

编辑: 我找到this SO answer一个相关的问题,只有当项目C的类从项目B浮出来时才需要解释这些引用。我一直非常坚定不要在图层之间发生任何泄漏,我知道Hibernate类只在C中使用,所以也许我只是不理解......

0 个答案:

没有答案