我有两种类型:如何从基本类型的对象映射?
class Source {
public object Data { get; set; }
}
class Destination {
public object Data { get; set; }
}
,我想之间,其中两个Source
和Destination
财产Data
是某种类型的存在用于其映射映射。例如。
Mapper.CreateMap<SourceData1, DestinationData1>();
Mapper.CreateMap<SourceData2, DestinationData2>();
目前我的映射文件的样子:
Mapper.CreateMap<Source, Destination>();
Mapper.CreateMap<SourceData1, DestinationData1>();
Mapper.CreateMap<SourceData2, DestinationData2>();
// This is the bit that looks bad to me:
Mapper
.CreateMap<object, object>()
.Include<SourceData1, DestinationData1>()
.Include<SourceData2, DestinationData2>()
孤男寡女包括从对象的所有允许的地图似乎有点笨重,可能得到真烦人一旦溶液生长了一下。如果我不包含它们,则Map
无法正确映射这些类型。
有什么办法可以解决这个问题吗?
这取决于 - 是映射基于约定,例如它将始终是'SourceData1'映射到'DestinationData1' - 将涉及哪些实际类型名称?我会建议一些基于约定的映射解决方案,它会根据命名自动从一个程序集中注册类型 – Charleh 2013-05-13 13:18:42
或者 - “DynamicMap”可以为你工作,因为如果你试图自动注册,你并不担心关于数据整形... http://stackoverflow.com/questions/2030227/automapper-convention – Charleh 2013-05-13 13:21:10
@Charleh - 是在这种情况下,可以安全地假设从'SourceData1'唯一的映射将是'DestinationData1'在应用程序。 – briantyler 2013-05-13 13:43:54