gpt4 book ai didi

C#:如何使自动映射器映射类型对象的属性?

转载 作者:太空宇宙 更新时间:2023-11-03 12:50:47 24 4
gpt4 key购买 nike

这是源对象:

public class Source {
public object Obj { get; set; }
}

这里的对象实际上是一个SourcePropertyType

我想将 Source 转换成这样:

public class Destination {
public object Obj { get; set; }
}

其中对象是 DestinationPropertyType(与 SourcePropertyType 相同)

var destination = map.Map<Source, Destination>(source);
var myObj = destination.Obj as DestinationPropertyType;

在上面的代码中 myObj == null 即使设置了源上的 Obj。

我希望这是有道理的。我怎样才能更改 AutoMapper 配置,以便它了解目标是 DestinationPropertyType 并像往常一样映射它?

最佳答案

“与 SourcePropertyType 相同”我假设您的意思是它们具有相同的属性和类型。在这种情况下,您只需要让 AutoMapper 在两者之间创建一个映射并为包含类型配置映射以使用它:

Mapper.CreateMap<SourcePropertyType, DestinationPropertyType>();
Mapper.CreateMap<Source, Destination>()
.ForMember(d => d.obj,
o => o.MapFrom(s => Mapper.Map<DestinationPropertyType>(s.obj As SourcePropertyType) as Object);

请注意,如果属性类型是实际 类型而不是object,则您不需要额外的配置。

关于C#:如何使自动映射器映射类型对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35629522/

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