我想将一个匿名对象作为方法的参数,然后遍历其属性以将每个属性/值添加到dynamic ExpandoObject。
ExpandoObject
所以我需要从
new { Prop1 = "first value", Prop2 = SomeObjectInstance, Prop3 = 1234 }
了解每个属性的名称和值,并将其添加到中ExpandoObject。
我该如何完成?
旁注:这将在我的许多单元测试中完成(我正在使用它来重构设置中的许多垃圾),因此性能在某种程度上是相关的。我对反射的知识还不够肯定,但是从我的理解来看,它的性能非常高,所以如果可能的话,我宁愿避免它…
后续问题: 正如我所说,我将这个匿名对象作为方法的参数。我应该在方法的签名中使用哪种数据类型?如果使用,所有属性都可用object吗?
object
foreach(var prop in myVar.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public)) { Console.WriteLine("Name: {0}, Value: {1}",prop.Name, prop.GetValue(myVar,null)); }