繁体   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