如果属性名是动态生成的,如何赋值?
dynamic o = new ExpandoObject();
o.name="test"; //
List<string> list = new List<string>();
list.Add("name"); // 属性名是动态生成的,该如何赋值?
------解决思路----------------------
dynamic 是.net用来在相当程度上取代“反射”的机制,有了它,你就不用再写复杂的反射代码了!
但是它跟 ExpandoObject 并是。所以你的问题“如何给动态对象dynamic 动态赋值”跟下面你贴出的的具体代码是不一致的。你这里应该问“如何给 ExpandoObject 对象的属性赋值”,而不是“给 dynamic 赋值”。
dynamic 跟 dynamicObject没有直接联系。实际上还有 dynamicMetaObject 等等新的类。不能把名称看错。
dynamic 关键字是个“语法糖”,它可以用来引用 ExpandoObject对象,DynamicObject 对象,也可以引用其它成千上万种对象。它就是用来避免你写反射代码的。