当前位置: 代码迷 >> C# >> 怎么给动态对象dynamic 动态赋值
  详细解决方案

怎么给动态对象dynamic 动态赋值

热度:597   发布时间:2016-05-05 05:35:19.0
如何给动态对象dynamic 动态赋值?
本帖最后由 qq_24201739 于 2014-12-08 07:50:23 编辑
如果属性名是动态生成的,如何赋值?

        
            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 对象,也可以引用其它成千上万种对象。它就是用来避免你写反射代码的。
  相关解决方案