Automapper:利用自定义解析返回的结构 [英] Automapper: Using the structure returned by a custom resolver

查看:245
本文介绍了Automapper:利用自定义解析返回的结构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用AutoMapper,我使用返回这样的结构ValueResolver

With AutoMapper, I am using a ValueResolver that returns a structure like this

struct MyStruct
{
        public int propA;
        public int propB;
        public int propC;
}

class MyResolver : ValueResolver<MyViewModel, MyStruct>
{ 
     protected override MyStruct ResolveCore(MyViewModel source)
     {
      ....return MyStruct data
     }
}

我回来的结构,因为映射规则相当复杂,因为它们关系到每个I写不出为每个属性的自定义解析器其他。

I returned a structure because the mapping rules are quite complex and I could not write a custom resolver for each properties as they are related to each other.

所以我的想法是做一个解析器返回的结构,并使用itike这个

So my idea was to do this in one resolver that return a structure and use itike this

AutoMapper.Mapper.CreateMap<MyViewModel, myData>()
    .ForMember(dest => dest.SomePropA, src => src.ResolveUsing<MyResolver>().propA))
    .ForMember(dest => dest.SomePropB, src => src.ResolveUsing<MyResolver>().propB))

不幸的是,这并不正常工作

Unfortunately, this does not work.

看起来 src.ResolveUsing< MyResolver>( )没有返回结构

任何帮助比升值幅度。

谢谢你。

推荐答案

通过使用 FromMember 您可以通过从一个属性。来源你ValueResolver

By using FromMember you can pass a property from the source to your ValueResolver.

您可以使用这样的:

.ForMember(dest => dest.SomePropA, opt=> opt.ResolveUsing<MyResolver>().FromMember(src => src.propA))

如果你不指定 FromMember ,AutoMapper将通过源的ValueResolver。

If you don't specify FromMember, AutoMapper will pass the source to your ValueResolver.

这篇关于Automapper:利用自定义解析返回的结构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆