2012-12-07 26 views
1

就使用注射器的價值開始:http://valueinjecter.codeplex.com/,和我有一個問題:ValueInjecter - 轉換源的一些特性到列表中的目標

我有一個具有很多特性的源類。某些屬性具有「配置文件」的通用後綴。這些屬性並不總是字符串,但主要是。目標有1個屬性,Dictionary<string, string>。我希望所有以「Profile」結尾的屬性都可以插入Dictionary<string, string>,其中key = PropertyName和value = Property的值。我認爲這是可以做到的,但文件不是很清楚。有人能指引我走向正確的方向嗎?謝謝!

+0

[AutoMapper](https://github.com/AutoMapper/AutoMapper)也是一個映射工具。你是否也問過它是否可以在AutoMapper中完成,或者是否有錯誤標記?謝謝。 – Mightymuke

+0

@Mightymuke我猜他會接受一個使用automapper的回答以及 – Omu

+0

@Echiban和目標字典屬性名稱是什麼? /名稱約定 – Omu

回答

1

對不起,我有超值噴油器沒有經驗,但如果您選擇使用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