是的,您可以查看此处记录的基于接口的代码生成。
这允许您定义一个接口,该接口将基于现有类生成映射器。
从那里您可以选择如何使用生成的映射器。在服务中注册,然后使用 DI 作为一种方式。
这是一个简单的例子:
[Mapper]
public interface IContactMapper
{
ContactDetailVm MapTo(Contact contact);
}
会导致
public partial class ContactMapper : IContactMapper
{
public ContactDetailVm MapTo(Contact p2)
{
return p2 == null ? null : new ContactDetailVm()
{
Id = p2.Id,
Created = p2.Created,
LastUpdate = p2.LastUpdate,
Title = p2.Title,
FirstName = p2.FirstName,
LastName = p2.LastName,
PreferredName = p2.PreferredName,
BirthYear = p2.BirthYear
};
}
}
但是,我不相信您可以使用该工具为现有实体生成映射扩展方法。至少我不知道它可以在 v6 中完成。