在我忙于编写的应用程序中,我的所有映射目标对象都来自这样的基类:
public class CatalogObject<TObject>
{
TObject InnerObject { get; set; }
}
public class CatalogTable : CatalogObject<table>
{
public string Name { get; set; }
public int ObjectId { get; set; }
}
现在,在将table
对象映射到CatalogTable
对象之后,我希望该目标的InnerObject
属性是对源table
对象的引用。
答案 0 :(得分:0)
您可以使用Custom Resolver:
来完成Mapper.CreateMap<Table, CatalogTable>()
.ForMember(dest => dest.InnerObject,
opt => opt.ResolveUsing<InnerObjectResolver>());
解析器的位置如下:
public class InnerObjectResolver : ValueResolver<Table, Table>
{
protected override Table ResolveCore(Table source)
{
return source;
}
}
详细信息请参见custom resolver documentation。
您也可以直接这样做,但我没有尝试过。这样的事情可能是:
Mapper.CreateMap<Source, Destination>()
.ForMember(dest => dest.InnerObject, opt => opt.MapFrom(src => src));