簡體   English   中英

C#:如何使自動映射器映射為對象類型的屬性?

[英]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 ,則不需要額外的配置。

在通過自動映射器運行對象之前,將其對象取消裝箱成特定的類型。 自動映射器將無法將一個對象映射到一個對象。

如何 map Object 列出<object> c# 自動映射器<div id="text_translate"><p>任何想法如何 map 單個 object ot 列表? 我有:</p><pre> class AdditionalData: string data1 string data2 string data3 class Person: AdditionalData additionalData string UCN class AdditionalDataDTO: string data1 string data2 string data3 string data4 string data5 class PersonDTO: AdditionalDataDTO additionalData[] string UCN</pre><p> 那么如何將 map AdditionalData 到 List 我希望源成為第一個 object ot 列表我知道如何將 map AdditionalData 到 AdditionalDataDTO</p></div></object>

[英]How to map Object to List<Object> c# Automapper

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM