最近在用DDD(领域驱动设计)进行框架搭建,当使用AutoMapper对DTO和实体进行对象映射时,遇到了一个问题。具体报错如下:
XXX needs to have a constructor with 0 args or only optional args.
很明显,AutoMapper需要被映射的对象有无参构造函数或者其属性名与构造函数的参数名匹配。
于是便有了两种解决办法:
一是在领域实体对象中添加一个Protected类型的无参构造函数,这样也不会与设计原则相违背;
二是让含参构造函数的参数名与映射对象属性名匹配或者使用Automapper的映射配置。
如果用第二种方法的后者,可以参考官方文档的用例:
Automapper用法之Construction
在使用DDD和AutoMapper进行框架构建时遇到问题,AutoMapper要求对象有无参构造函数或属性名与构造函数参数匹配。解决方案包括:1) 添加Protected类型的无参构造函数;2) 使构造函数参数名与映射对象属性名一致或配置映射规则。官方文档提供了映射配置的示例。
402

被折叠的 条评论
为什么被折叠?



