如何避免需要这样的代码:AutoMapper如何避免初始化
public static class BusinessLogicAutomapper
{
public static bool _configured;
public static void Configure()
{
if (_configured)
return;
Mapper.CreateMap<Post, PostModel>();
_configured = true;
}
}
在我的BL组装,且在我的MVC应用程序调用Configure()
从我Global.asax
?
我的意思是,我希望这样的电话:
public PostModel GetPostById(long id)
{
EntityDataModelContext context = DataContext.GetDataContext();
Post post = context.Posts.FirstOrDefault(p => p.PostId == id);
PostModel mapped = Mapper.Map<Post, PostModel>(post);
return mapped;
}
到Mapper.Map<TIn,TOut>
产生映射,如果它不是在所有脑干,而不必手动创建它自己(我不应该甚至知道关于这个内在工作)。我如何解决声明式创建AutoMapper映射器的问题?
对于AutoMapper来说很自然的解决方案是需要的,但为了避免这种初始化,扩展或架构更改也是可行的。
我使用MVC 3,.NET 4中,没有的IoC/DI(但,至少)
如果您还没有一个CreateMap配置打电话给我们,当事情不中邮排队应该发生什么 - > PostModel地图?也就是说,你在Post上重命名了一些内容,但是没有在PostModel上重命名它? –
这是一个很好的答案。 :) – bevacqua