Automapper是否可以与私有setter一起使用?

5
我有一个嵌套的子类,其中包含公共属性和私有设置器。在父类中,我可以使用自动映射程序将数据映射到子类,并且私有设置器的值也能够被设置。根据所有我所看到的内容,似乎自动映射程序并不支持这种情况,需要在子类中编写自定义构造函数以填充私有设置器。
当前版本是否使用反射或其他方式映射私有设置器?因为在父类中,我无法设置 Child.Property 属性,但 Mapper.Map 却能够设置该属性。

1
可能是重复的问题:https://dev59.com/qWsy5IYBdhLWcg3wvgdl - haim770
1
重复问题:https://dev59.com/qWsy5IYBdhLWcg3wvgdl。 - L-Four
请仔细阅读我的问题。你提供的链接中指出它不能使用私有setter,并使用构造函数参数作为解决方法,但在我的情况下,我能够直接映射私有setter。 - Monstieur
解决方案:https://dev59.com/qWsy5IYBdhLWcg3wvgdl#37407912 - Chris Xue
1个回答

4

Automapper广泛使用反射,因此使用它来设置私有setter是没有理由不这样做的。

实际上,在你提出问题之前,我并不知道它是如何工作的。

如果我们查看单元测试,我们可以发现私有setter会自动设置。请参见PrivateSetterInParentWorks

请注意,Silverlight不支持通过反射设置私有字段。 因此,该功能在其上不起作用。


我们可以禁止使用私有的setter吗? - Kaerber
@Kaerber,请查看IgnoreAllPropertiesWithAnInaccessibleSetter方法。它出现在3.2.0版本中。 - mt_serg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接