【发布时间】:2016-02-16 07:34:27
【问题描述】:
我有几个不同类型的对象以及我需要在这些对象上获取和设置的属性的名称。在像 javascript 这样的语言中,这很简单,因为我可以使用索引器语法获取和设置值。
obj2[propertyName] = obj1[propertyName];
在 c# 中,这并不容易。我知道我可以使用反射,但这是很多代码。我知道有动态对象,但它们不会自动按名称引用属性。在任意类型的对象上按名称动态获取和设置属性的最简单方法是什么(即它们具有属性但并不都共享一个公共接口或基类)?
更新:经过进一步研究,如果有人有任何想法,FastMember、Impromptu、Dynamitey 或 FSharp.Dynamic 似乎可以提供帮助......
【问题讨论】:
-
@Eser 我知道 Automapper 并在我的项目的其他地方使用它,但在这种情况下,我需要动态获取属性,根据结果做出决定,然后设置它们。这是一个不同的用例。
标签: c# dynamic reflection