我是 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”的类上使用上述属性已创建
public class ContactMapping
{
[Telephony.Helper.Attribute.Mapping(Name = "Graduate")]
public string GraduationYear { get; set; }
}
我从没有自定义属性“映射”的域服务中获取联系人对象。
var contact = new ContactService().Get(contactPredicate).Single();
现在我正在做自动映射器
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"));
我的contactwithCustomAttr.Count() 为零。我期望返回 GraduationYear 属性,因为映射器应该应用我的自定义属性。