使用自动映射器,我需要映射以下类的对象
public class RemoteClass
{
public IEnumerable<RemoteDetails> collection{get; set;};
public int RemoteFieldA{get; set;}
public int RemoteFieldB{get; set;}
}
public class LocalClass
{
public IEnumerable<LocalDetails> collection{get; set;};
public int LocalFieldA{get; set;}
public int LocalFieldB{get; set;}
}
我的配置和映射应该是什么?
只需定义之间的映射RemoteDetails
and LocalDetails
。 AutoMapper 足够聪明,可以处理他知道如何映射的类型集合。假设这两个类有字段 C:
Mapper.CreateMap<RemoteDetails, LocalDetails>()
.ForMember(ld => ld.LocalFieldC, opt => opt.MapFrom(rd => rd.RemoteFieldC));
Mapper.CreateMap<RemoteClass, LocalClass>()
.ForMember(lc => lc.LocalFieldA, opt => opt.MapFrom(rc => rc.RemoteFieldA))
.ForMember(lc => lc.LocalFieldB, opt => opt.MapFrom(rc => rc.RemoteFieldB));
通过这些映射,您可以从 RemoteClass 映射到 LocalClass:
RemoteClass remote = new RemoteClass {
RemoteFieldA = 42,
RemoteFieldB = 100,
collection = new [] {
new RemoteDetails { RemoteFieldC = "Foo" },
new RemoteDetails { RemoteFieldC = "Bar" }
}
};
var local = Mapper.Map<LocalClass>(remote);
Result:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)