AutoMapper在哪些方法中使用反射?

her*_*orn 3 reflection automapper

我想知道AutoMapper是否在它的Mapper.Map <>()方法中使用反射,或者如果反射的使用仅限于Mapper.CreateMap <>()方法?

Jim*_*ard 8

也不是,说实话.当您调用CreateMap时,AutoMapper使用优化器来构建用于获取/设置源/目标类型值的代码.目前,它使用Reflection.Emit和表达式树编译的组合.在Map时,它使用优化的回调与类型进行交互.

  • 我是对的,或者你可以看看来源。这也取决于您所说的“使用反射”是什么意思。 (2认同)
  • 我查看了来源。我经常看到“使用 System.Reflection”。我看到像“Type.GetProperties()”这样的内省调用。我看到通过表达式树编译和直接使用“Emit()”生成代码(正如您所说)。我看到代码注释提到了反射。我真的很好奇你如何定义反射以便能够说“CreateMap”不使用它。 (2认同)