一、定义源映射对象
为了体现AutoMapper映射特性,在SocialAttribute中的Name属性没有定义在People中,People的Ear属性也不存在与SocialAttribute和PhysicalAttribute中。
代码如下:
二、注入AutoMapper
例子中使用的IOC容器是Autofac,不使用Autofac的话,仅用NetCore框架集成的IOC容器也可以实现。
注册AutoMapper必要组件:
三、配置映射
ForMember:映射两个类之间的属性关系。
People类中的Ear属性并不存在于任何映射源类中,我们可以使用ForMember(m => m.Ear, n => n.Ignore())忽略该属性,当然也可以不写这段代码,对AutoMapper不会有任何影响,但是为了后期维护更方便,我比较习惯将Dto类的属性写全。
SocialAttribute类中的Name属性不存在与People类中,直接忽略它,Name也不会被AutoMapper赋值。
四、调用AutoMapper完成赋值
调用AutoMapper,将PhysicalAttribute和SocialAttribute的值赋给PeopleDto
五、运行测试
测试框架使用的xUnit
通过测试!
参考项目:https://github.com/FB208/CodeSpace/tree/master/CodeSpace.CSharp/WebMvc/DemoClass/AutoMapperDemo
原文链接:https://www.cnblogs.com/fb208/p/11548250.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com