gpt4 book ai didi

c# - AutoMapper 8.0 ConstructUsing 重大变更

转载 作者:太空宇宙 更新时间:2023-11-03 22:37:27 26 4
gpt4 key购买 nike

我在我的代码中使用了 AutoMapper,并且我有一个用于初始化映射器的通用包装器。代码运行很长时间没有任何问题。升级到 AutoMapper 8 后,我的自定义转换器将被忽略。负责设置转换器的代码如下:

new MapperConfiguration(cfg =>
cfg.CreateMap(mySource, myTarget).ConstructUsing(myConverter);

这段代码不使用 AutoMapper 8 构建,因为我必须使用表达式。甚至还有一个 upgrade guid提供,但我无法让它再次运行。

我只是想把它转换成

new MapperConfiguration(cfg =>
cfg.CreateMap(mySource, myTarget).ConstructUsing(expr => myConverter);

但是转换器被忽略了。

最佳答案

我通过将 myConverter 方法提取到一个继承自 ITypeConverter 的单独类中解决了类似的问题:

public class MyConverter : ITypeConverter<MySourceType, MyDestinationType>
{
public MyDestinationType Convert(MySourceType source, MyDestinationType destination, ResolutionContext context)
{
// Conversion logic here
}
}

然后您可以将映射配置替换为以下内容:

cfg.CreateMap(mySource, myTarget).ConvertUsing<MyConverter>();

cfg.CreateMap<MySourceType, MyDestinationType>().ConvertUsing<MyConverter>();

关于c# - AutoMapper 8.0 ConstructUsing 重大变更,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54276115/

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