使用AutoMapper将对象字段映射到数组?
问题描述:
C#中的automapper可以将对象的属性映射到数组/字典吗?我曾尝试以下内容:使用AutoMapper将对象字段映射到数组?
Mapper.CreateMap<FFCLeads.Models.FFCLead, Dictionary<string, SqlParameter>>()
.ForMember(d => d["LeadID"], o => o.MapFrom(s => new SqlParameter("LeadID", s.LeadID)))
.ForMember(d => d["LastName"], o => o.MapFrom(s => new SqlParameter("LastName", s.LastName)));
但是,它不起作用(对象引用未设置为实例)。基本上,我试图将这个对象的值赋给一个SqlParameter对象的数组。可能?如果是这样,那么执行此操作的正确方法是什么?谢谢。
答
我用下面的方法:
IDictionary<string, object> GetDictionaryFromObject(object obj)
{
if(obj == null) return new Dictionary<string, object>();
return obj.GetType().GetProperties().
ToDictionary(p => p.Name,
p => p.GetValue(obj, null) ?? DBNull.Value);
}
是否有使用AutoMapper? – 2011-02-16 17:48:55