2012-04-03 3 views
3

쉼표로 구분 된 문자열이 있고이를 개체에 매핑하려고합니다. automapper와이 작업이 가능합니까?자동 매기기 쉼표로 구분 된 문자열

public class DTO 
{ 
    public string FirstName { get;set; } 
    public string LastName { get;set; } 
} 

및 샘플 입력 : 너무 많은 세부 사항을 모른 채

감사

+0

당신이 몇 가지 예제 코드를 게시 할 수 있습니까? 대상 객체와 문자열 목록이 어떻게 생겼습니까? – nemesv

답변

4

, 우리가 채울하려면 다음 DTO 주어진 이러한 목표를 달성하는 방법은 두 가지가 있습니다 날 것으로 보인다

string input = "Andrew,Whitaker"; 
  1. 사용자 정의 형식 변환기 쓰기 (권장) :

    public class CommaDelimitedStringConverter : TypeConverter<string, DTO> 
    { 
        protected override DTO ConvertCore(string source) 
        { 
         string[] tokens = source.Split(','); 
    
         DTO result = null; 
    
         if (tokens.Length == 2) 
         {   
          result = new DTO(); 
          result.FirstName = tokens[0]; 
          result.LastName = tokens[1]; 
         } 
         return result; 
        } 
    } 
    
    Mapper.CreateMap<string, DTO>() 
        .ConvertUsing<CommaDelimitedStringConverter>(); 
    
  2. 지도 (이 신속하고 더러운 경우를 제외하고 권장하지 않음) 각 속성 일회성 :

    Mapper.CreateMap<string, DTO>() 
        .ForMember(dest => dest.FirstName, opt => opt.MapFrom(src => src.Split(',')[0])) 
        .ForMember(dest => dest.LastName, opt => opt.MapFrom(src => src.Split(',')[1]));