3 回答
TA贡献1833条经验 获得超4个赞
没关系,只要它是静态类即可。一切都与惯例有关。
我们的约定是,每个“层”(Web,服务,数据)都有一个名为的文件AutoMapperXConfiguration.cs,并带有一个名为的方法Configure(),其中X是该层。
Configure()然后,该private方法为每个区域调用方法。
这是我们的Web层配置的示例:
public static class AutoMapperWebConfiguration
{
public static void Configure()
{
ConfigureUserMapping();
ConfigurePostMapping();
}
private static void ConfigureUserMapping()
{
Mapper.CreateMap<User,UserViewModel>();
}
// ... etc
}
我们为每个“聚合”(用户,发布)创建一个方法,因此可以很好地分离事物。
然后您的Global.asax:
AutoMapperWebConfiguration.Configure();
AutoMapperServicesConfiguration.Configure();
AutoMapperDomainConfiguration.Configure();
// etc
它有点像“单词的界面”-无法强制执行,但是您期望得到它,因此可以在必要时进行编码(和重构)。
编辑:
只是以为我提到我现在使用AutoMapper 配置文件,因此上面的示例变为:
public static class AutoMapperWebConfiguration
{
public static void Configure()
{
Mapper.Initialize(cfg =>
{
cfg.AddProfile(new UserProfile());
cfg.AddProfile(new PostProfile());
});
}
}
public class UserProfile : Profile
{
protected override void Configure()
{
Mapper.CreateMap<User,UserViewModel>();
}
}
更清洁/更坚固。
- 3 回答
- 0 关注
- 1087 浏览
添加回答
举报