我要做的是拿一个IEnumerable<KeyValuePair<String, String>>
并将它们映射到一个班级。
所以我想把那些KeyValuePair<String, String>
并将它们作为属性名称和值映射到一个类。
可以这样做吗?还是其他任何建议?
答案 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方法。