ValueInjecter - 将源的某些属性转换为目标列表

时间:2012-12-07 23:17:43

标签: automapper valueinjecter

刚开始使用Value Injector:http://valueinjecter.codeplex.com/,我有一个问题:

我有一个具有许多属性的Source类。某些属性具有“Profile”的通用后缀。这些属性并不总是String,但主要是。 Target有1个属性Dictionary<string, string>。我希望所有以“Profile”结尾的属性都插入到Dictionary<string, string>中,其中key = PropertyName和value = Property的值。我认为可以做到,但文档对我来说不是很清楚。有人能指出我正确的方向吗?谢谢!

1 个答案:

答案 0 :(得分:1)

抱歉,我没有使用Value Injector的经验,但如果您选择使用AutoMapper,则很可能会使用Custom Resolver

Mapper.CreateMap<Source, Destination>()
    .ForMember(dest => dest.Profile, opt => opt.ResolveUsing<ProfileResolver>());

解析器的位置如下:

public class ProfileResolver : ValueResolver<Source, Dictionary<string, string>>
{
    protected override int ResolveCore(Source source)
    {
        var rc = new Dictionary<string, string>();
        // Do some funky reflection stuff here
        return rc;
    }

}

详细信息请参见custom resolver documentation