![](/img/trans.png)
[英]Automapper If source is null, set destination object properties
[英]How can I make Automapper set a reference to the source object in the destination object?
在我正忙於編寫的應用程序中,我所有的映射目標對象都源自這樣的基類:
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
對象的引用。
您可以使用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;
}
}
完整的詳細信息可以在自定義解析器文檔中找到 。
您也許也可以直接做到這一點,但我還沒有嘗試過。 可能是這樣的:
Mapper.CreateMap<Source, Destination>()
.ForMember(dest => dest.InnerObject, opt => opt.MapFrom(src => src));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.