我应该考虑反思

时间:2012-09-17 13:21:24

标签: c#

我不确定,我应该考虑不使用反射。 目前我正在努力解决以下问题:

两个类之间的映射是通过反射完成的(使用字典到属性)。 在一个类中,我们有dictionary<string, object>,在另一个类中,我们有与字典键相同名称的属性。然后我起诉反思获得财产并设置它。

你知道,所有物体也都有昂贵的铸件。有时我必须做一个自定义演员,因为类型不同..

反射的唯一大优势是“简单”的映射,只需很少的行和更少的类。反射和正常的属性集方法都是可能的。

  

注意:我的问题更多来自设计,而不是“如何”解决问题。

如果你能给我一些建议,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

  

我的问题更多的是从设计的角度来看,而不是how to解决问题

要回答您的问题,通常您会使用Reflection来执行此类动态属性映射。然而,在实践中,反射可能很重。慢(因为你开始注意到)。正如你可能已经猜到的那样,这个问题很常见,并且已经有一些库可以帮助你完成所有繁重的工作,例如: AutoMapper

就将Dictionary映射到对象而言,我从来没有使用过AutoMapper这样的东西因此我无法评论它是否会支持它(我猜它可能会这样,它很灵活)。如果您的Dictionary只是自定义映射的桥梁,那么如果您切换到使用AutoMapper,则可以完全摆脱这种情况。