2012-05-10 2 views
0

Что я пытаюсь сделать, это взять IEnumerable<KeyValuePair<String, String>> и сопоставить их с классом.Карта AutoMapper KeyValuePair <String, String> для класса?

Так что я хочу взять эти KeyValuePair<String, String> и сопоставить их как имя и значение свойства для класса.

Можно ли это сделать? Или любые другие предложения?

ответ

6

Да, это может быть сделано, например, как этот

static void Main(string[] args) 
    { 
     Mapper.CreateMap<KeyValuePair<string, string>, MyClass>() 
      .ConstructUsing(x => new MyClass { Name = x.Key, Value = x.Value }); 

     var kv = new KeyValuePair<string, string>("Key", "Val"); 
     var mapped = Mapper.Map<KeyValuePair<String, String>, MyClass>(kv); 

     Console.WriteLine(mapped.ToString()); 

     Console.ReadLine(); 
    } 

    public class MyClass 
    { 
     public string Name { get; set; } 
     public string Value { get; set; } 

     public override string ToString() 
     { 
      return String.Format("Name : {0}, Value : {1}", Name, Value); 
     } 
    } 

использовать списки в создании отображения в случае, если вы хотите иметь дело с IEnumerable

0

я понял вопрос Сэма иначе, чем Андрей. Я думаю, что это возможно, используя метод отражения и ResolveUsing.

+2

Это должен быть комментарий. –

Смежные вопросы