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