这可能非常简单,我只是想知道AutoMapper如何能够使用内部构造函数创建类的实例。
所以我有4个项目UI BLL ENTITY DAL
BLL拥有所有映射信息,DAL从DB获取数据并在Entity Class上创建一个具有内部构造函数的新实例。
在DAL我做
Mapper.Map<dalObjct, EntityObject> (_db.GetItem())
并返回EntityObject
类型的对象。这一切都有效,但我想知道当AutoMapper的构造函数被标记为内部时,它是如何创建EntityObject实例的。
答案 0 :(得分:2)
AutoMapper如何在构造函数中创建
EntityObject
的实例 被标记为内部
Automapper使用reflection来检索类型元数据,因此,构造函数的可见性不是问题。
为什么automapper会这样做?
因为你已经要求它这样做了。
是不是违反抽象?
不,不是。
自动映射和反射只是工具。当您使用某种工具时,您必须知道如何,何时以及如何使用它。