2012-12-07 1 views
1

그냥 값 인젝터 사용하기 시작 : http://valueinjecter.codeplex.com/을, 나는 질문이있다 :ValueInjecter - 대상에리스트로 소스의 일부 속성을 변환

내가 많은 속성을 가진 소스 클래스가 있습니다. 일부 속성에는 공통 접미사 "프로필"이 있습니다. 이러한 속성은 항상 String이 아니라 대부분입니다. 대상에 속성 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; 
    } 

}

자세한 내용은에서 찾을 수 있습니다. 210.