![](/img/trans.png)
[英]C# How to map inner property object to outer class with AutoMapper?
[英]C#: How can I make automapper map a property of type object?
这是源对象:
public class Source {
public object Obj { get; set; }
}
这里的对象实际上是SourcePropertyType
。
我想将Source转换为:
public class Destination {
public object Obj { get; set; }
}
其中object是DestinationPropertyType
(与SourcePropertyType
相同)
var destination = map.Map<Source, Destination>(source);
var myObj = destination.Obj as DestinationPropertyType;
在上面的代码中,即使设置了源上的Obj, myObj == null
。
我希望这是有道理的。 如何更改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
,则不需要额外的配置。
在通过自动映射器运行对象之前,将其对象取消装箱成特定的类型。 自动映射器将无法将一个对象映射到一个对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.