我是AutoMapper的新手
我有以下域模型。
public class Contact
{
public string University { get; set; }
public string GraduationYear { get; set; }
}
我不想更改域模型,并且想为GraduationYear属性添加额外的属性。
我在mvc 4项目中创建了属性类
[System.AttributeUsage(System.AttributeTargets.Property)]
public class Mapping : System.Attribute
{
public string Name { get; set; }
}
在名为'ContactMapping'Created
的类上使用上面的属性public class ContactMapping
{
[Telephony.Helper.Attribute.Mapping(Name = "Graduate")]
public string GraduationYear { get; set; }
}
我从域服务获取联系对象,该对象没有自定义属性“Mapping”。
var contact = new ContactService().Get(contactPredicate).Single();
现在我在做Auto Mapper
AutoMapper.Mapper.CreateMap<Telephony.Helper.Mapping.ContactMapping, Aurora.CustomersMvc.Domain.Contact>();
var test = AutoMapper.Mapper.Map<Aurora.CustomersMvc.Domain.Contact>(contact);
var contactwithCustomAttr = contact.GetType().GetProperties().Where(p => ((Telephony.Helper.Attribute.Mapping[])p.GetCustomAttributes(typeof(Telephony.Helper.Attribute.Mapping), false))
.Any(attr => attr.ToString() == "Graduate"));
我正在与contactCustomAttr.Count()联系。我希望返回GraduationYear属性,因为mapper应该应用我的自定义属性。
答案 0 :(得分:0)
试试这个:我认为你没有正确映射
AutoMapper.Mapper.CreateMap<Aurora.CustomersMvc.Domain.Contact, Telephony.Helper.Mapping.ContactMapping>();
var test = AutoMapper.Mapper.Map<Aurora.CustomersMvc.Domain.Contact, Telephony.Helper.Mapping.ContactMapping>(contact);
var contactwithCustomAttr = test.GetType().GetProperties().FirstOrDefault(p => ((Telephony.Helper.Attribute.Mapping[])p.GetCustomAttributes(typeof(Telephony.Helper.Attribute.Mapping), false))
.Any(attr => attr.Name == "Graduate"));