Automapper:基于Source对象和ResolutionContext

时间:2015-10-01 20:18:04

标签: c# automapper

我需要根据源对象和ResolutionContext进行条件映射。这是我的代码:

AutoMapper.Mapper.CreateMap<SourceType, DestinationType>()
    .ForMember(dest => dest.Value, opt =>
        {
            opt.Condition(context=>
                {
                    bool condition1 = (bool)context.Options.Items["Condition"];
                    bool condition2 = SomeFunction(context.SourceValue);
                    return !(condition1 && !condition2);
                });
            opt.MapFrom(src => src.Value);
        });

不幸的是,这会因为context.SourceValue返回String(而不是SourceType)而中断。我认为context.SourceValue返回了源对象,但似乎并非如此。

有没有办法根据ResolutionContext和Source对象进行条件映射?

1 个答案:

答案 0 :(得分:2)

context.SourceValue返回当前正在转换的成员,在本例中为SourceType.Value(我猜是字符串)。

要获取SourceType对象,请使用以下命令:

SourceType source_object = (SourceType)context.Parent.SourceValue;