3
搞錯了,從我的項目有人在automapper寫簡介下面的句子:奇怪映射行爲布爾
Mapper.CreateMap<Appointment, AppointmentModel>()
.ForMember(x => x.DeclineStart, o => o.MapFrom(x => x.DeclineStart.ToString()))
哪裏DeclineStart
是實體和模型類的屬性。
public class Appointment
{
public bool DeclineStart { get; set; }
}
public class AppointmentModel
{
public bool DeclineStart { get; set; }
}
我知道在這種情況下,沒有必要爲此屬性創建任何映射規則。
令我吃驚的是這個映射(從String
到Boolean
)正在工作。
但是,當我們發表我們的Azure雲服務應用程序,該代碼成爲扔AutoMapperMappingException
這表明:
Missing type map configuration or unsupported mapping.
Mapping types:String -> Boolean (System.String -> System.Boolean)
Destination path: AppointmentModel.DeclineStartBackfill.DeclineStartBackfill
Source value:False
如何它可能是相同的代碼在本地工作,但沒有工作在Azure上?
在此先感謝!
Azure的機器配置:在Windows Server 2012 R2/.NET框架4.5.1
本地機器配置:Windows 7中/ .NET框架4.5.2
Automapper版本:3.1.0
嗯,沒有。但爲什麼發生 - 我無法理解。 –
我所有的依賴關係都是由Nuget加載的(對於automapper它是: )。並且在我的開發機器上本地加載此程序集(AutoMapper.Net4.dll),但在Azure虛擬機上 - 不是。實際上只有一個AutoMapper.dll存在。 –
所以,如果你更新到預發佈,這將消失。這是因爲沒有引用.Net4.dll程序集中的類型的代碼,並且即使您引用它,部署者也會認爲「嗯,沒有使用它,所以我不會部署」。這很愚蠢,我通過製作1個程序集來修復4.0版本的問題。 –