AutoMapper Map KeyValuePair <string,string =“”>到Class?</string,>

时间:2012-05-10 02:02:59

标签: automapper

我要做的是拿一个IEnumerable<KeyValuePair<String, String>>并将它们映射到一个班级。

所以我想把那些KeyValuePair<String, String>并将它们作为属性名称和值映射到一个类。

可以这样做吗?还是其他任何建议?

2 个答案:

答案 0 :(得分: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

,请在创建映射中使用列表

答案 1 :(得分:0)

我理解Sam的问题与Andriy不同。我认为可以使用反射和ResolveUsing方法。