刚开始使用Value Injector:http://valueinjecter.codeplex.com/,我有一个问题:
我有一个具有许多属性的Source类。某些属性具有“Profile”的通用后缀。这些属性并不总是String,但主要是。 Target有1个属性Dictionary<string, string>
。我希望所有以“Profile”结尾的属性都插入到Dictionary<string, string>
中,其中key = PropertyName和value = Property的值。我认为可以做到,但文档对我来说不是很清楚。有人能指出我正确的方向吗?谢谢!
答案 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。