6
我在項目中升級AutoMapper,將靜態Mapper.CreateMap
轉換爲新方式,並在需要映射的地方注入IMapper
。在ITypeConverter中使用Automapper
除了一個用例外,這個過程很好。對於使用Mapper.Map
函數的複雜映射,我有幾個ITypeConverter
。我怎樣才能解決這個問題?以下是我目前使用的代碼。
靜態Mapper.Map
找不到我定義的映射,因爲它不是使用靜態方法創建的。
public partial class ApplicationMappingsProfile
{
private void RegisterMappings()
{
CreateMap<Application, AppDto>()
.ConvertUsing<ApplicationTypeConverter>();
}
}
private class ApplicationTypeConverter : ITypeConverter<App, AppDto>
{
public AppDto Convert(ResolutionContext context)
{
var src = context.SourceValue as App;
if (src == null)
{
return null;
}
var dto = Mapper.Map<App, AppDto>(src);
dto.property = Mapper.Map<Property>(src.SomeProperty);
return result;
}
}
謝謝你分享你解決的問題 –
有沒有辦法在ctor中使用IMapper實例? –
@AmelSalibasic注入它? – Thijs