AutoMapper、WCF和多层:如何处理依赖关系
本文关键字:处理 关系 依赖 何处理 WCF AutoMapper | 更新日期: 2023-09-27 18:01:15
我有一个具有多层(和DTO对象)的WCF项目:
-Service (WCF主机)
-业务层(或域层)
-数据访问层(使用实体框架)
为了检索数据库信息,我想使用automapper将实体对象映射到DTO对象。
但是如果我在全局配置映射。asax,我的问题是:服务层不引用数据访问层(我不希望这样)。
我该怎么办?
让我们假设您正在使用AutoMapper 5.1,它包括配置文件扫描。首先,您希望将您的配置放到配置文件的适当位置:
public class EntityToDtoProfile : Profile {
public EntityToDtoProfile() {
CreateMap<Entity, Dto>();
}
}
接下来,在WCF应用程序中,无论应用程序启动在哪里,您都将初始化AutoMapper,传入程序集名称以扫描配置文件:
Mapper.Initialize(cfg => {
cfg.AddProfiles(new [] {
"MyLayeredApp.BLL",
"MyLayeredApp.DAL",
"MyLayeredApp.Service"
});
});
AutoMapper将扫描这些程序集的概要文件,并在配置中注册它们。确保你只打给Mapper。在启动时初始化一次,就像你在任何其他应用范围内的配置一样。
或者,只创建一个WCF项目,将所有这些项目折叠成一个,并使用文件夹来组织而不是所有这些。