2

私が書くのに忙しいアプリケーションでは、すべてのマッピング宛先オブジェクトは次のような基本クラスから派生します。

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たいと考えています。InnerObjecttable

4

1 に答える 1

1

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));
于 2012-12-16T07:30:04.397 に答える