【发布时间】:2013-11-10 11:55:55
【问题描述】:
在我的 ASP.NET MVC 4 c# 项目中,我有 3 层。数据、业务和网络。我遵循存储库模式和服务。
我使用 Autofac 进行依赖注入。我所做的是在 global.asax 中注册组件。 通过这种方式,我必须引用我实现存储库的数据层。
我认为这违反了规则,因为我的 web 项目有数据层的引用。
我已经阅读了一些关于解决这个问题的文章,并找到了 Autofac 模块。但是,如果不引用数据层,我也找不到实现它的方法。
有没有办法在不引用数据层的情况下注册组件?
谢谢。
【问题讨论】:
-
数据层实现的接口定义在哪里?
-
数据层由通用存储库和工作单元类以及从通用存储库派生的存储库类组成。事实上,我有 4 个项目,其中 3 个在问题中提到,第 4 个是我实现实体的域项目(代码优先)。服务位于业务层。
-
谢谢马克。我读过那篇文章和你的“组合根”文章。我现在对 Autofac 模块的使用感到困惑。如果可以通过添加项目引用在我的表示层(MVC 应用程序 - global.asax)中注册组件,那么我为什么需要使用模块?非常感谢。
-
为什么需要模块?这是个好问题。我会说你几乎不需要这样的功能。
标签: c# asp.net-mvc dependency-injection ioc-container autofac