如何避免需要這樣的代碼: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