2011-01-20 190 views
0

我似乎無法得到任何與AutoMapper工作...AutoMapper - 映射器沒有發現

首先,該文件是錯誤或過時的,或者說我傻:

AutoMapperConfiguration.Configure(); // this doesn't exist 

其次,我正在通過以下方式創建我的地圖:

Mapper.CreateMap(myType1, myType2) 

其中類型是字面上彼此精確的屬性圖。

但是,當我打電話

Mapper.Map(myInstanceOf1, myType2) 

我得到錯誤未找到映射。如果我檢查AutoMapper內部_objectMapperCache字典,我可以看到上面的映射的內部值爲空(因此是例外)。

我在做什麼錯?

回答

2

嘗試使用通用語法,它爲我工作:

Mapper.CreateMap<A, B>().ForMember(.... 

b = Mapper.Map<A, B>(a); 
+0

我需要使用ForMember嗎?我只想要映射所有屬性。 – Jeff 2011-01-20 11:12:16

4

你需要自己創建AutoMapperConfiguration類。添加一個靜態的Configure方法,並把你的配置代碼放在那裏。例如:

public class AutoMapperConfiguration 
{ 
    public static void Configure() 
    { 
     Mapper.Initialize(x => x.AddProfile<MyProfile>()); 
    } 
} 

public class MyProfile : Profile 
{ 
    public override string ProfileName 
    { 
     get { return "MyProfile"; } 
    } 

    public MyProfile() 
    { 
    // Configuration here 
     CreateMap<Account, AccountViewModel>(); 
    } 
}