gpt4 book ai didi

automapper - 扩展 AutoMapper 的默认行为

转载 作者:行者123 更新时间:2023-12-02 16:19:47 29 4
gpt4 key购买 nike

我想自定义 AutoMapper 转换类型的方式,而不丢失 AutoMapper 已实现的功能。

我可以创建一个自定义 ITypeConverter实例,但我不知道如何调用默认行为。

Mapper.CreateMap<MyDomainObject, MyDto>
.ConvertUsing<MyTypeConverter>();

...

public class MyTypeConverter : TypeConverter<MyDomainObject, MyDto>
{
public MyDto ConvertCore(MyDomainObject source)
{
var result = // Do the default mapping.

// do my custom logic

return result
}
}

如果我尝试调用var result = Mapper.Map<MyDto>(source)它进入无限循环。我实际上希望 AutoMapper 能够完成假设没有定义 TypeConverter 时通常会做的所有事情。

非常感谢任何帮助。

最佳答案

如果您只想自定义目标对象上的某些值,那么最好使用 Custom Value Resolver - TypeConverters 旨在处理整个转换。

上面列出的文档页面足以帮助您入门:当您实现了 CustomResolver 后,您可以像这样应用它,AutoMapper 将为其他属性执行默认映射:

Mapper.CreateMap<MyDomainObject, MyDto>()
.ForMember(dest => dest.TargetProperty,
opt => opt.ResolveUsing<CustomResolver>());

关于automapper - 扩展 AutoMapper 的默认行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16913463/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com