2012-04-03 187 views
3

我有一個逗號分隔的字符串,並希望將其映射到一個對象。這可能與automapper?AutoMapper逗號分隔的字符串

感謝

+0

你可以張貼一些示例代碼?目標對象和字符串列表的外觀如何? – nemesv 2012-04-03 19:06:17

回答

4

不知道太多的細節,但在我看來,有兩種方法可以做到這一點,下面給出DTO,我們要填充:

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

和樣品輸入:

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]));