![](/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.