Gre*_*egH 4 c# asp.net asp.net-mvc automapper
我目前已经构建了一个MVC解决方案,该解决方案具有一个Web项目(控制器/视图/脚本),服务项目(业务层,构建视图模型)和存储库项目(数据访问层)。
我过去在项目中使用过AutoMapper,现在正在尝试在此解决方案中配置AutoMapper。通常,我会配置所有在MapperConfig.cs中调用的地图Global.asax.cs。
我的问题是,通常在其中配置AutoMapper的Web项目仅引用服务项目,而服务项目仅引用数据项目。因此,当我像往常一样配置地图时,由于Web项目没有对数据项目的引用,因此无法为数据项目定义地图。我需要一种方法来配置我的数据访问层映射,而无需将数据项目的引用添加到Web项目。
项目依赖关系图如下所示:
Web项目->服务项目->数据项目
我该如何克服?
有没有需要有一个单一的所有项目映射注册文件,尤其是你说你没有任何交叉类型。
在最简单的方法是定义一个配置文件,每个项目,并拥有这些配置打电话给对方,重复你的组件的分层依赖性,象下面这样:
Global.asax.cs --> WebProjMapRegistrations.Register()-->ServicesMapRegistrations.Register()-->DataMapRegistrations.Register()
或者,您可以使用装配体扫描进行自动配置
如@Jimmy Bogard所述,当您运行Web应用程序时,您的应用程序的所有程序集最终都将加载到您的应用程序域中-因此您可以从所有程序集获取所有配置文件并将其添加到mapper配置:如何初始化AutoMapper ASP.Net Webapp中引用的项目DLL中的配置文件
适用于ASP.NET应用程序的另一种替代方法可以在这里找到: 将AutoMapper映射注册放在引用的dll中的位置
| 归档时间: | 
 | 
| 查看次数: | 4120 次 | 
| 最近记录: |