动态添加属性到动态对象?

我有这个

dynamic d = new ExpandoObject(); d.Name = attribute.QualifiedName.Name; 

所以,我知道d将有一个属性Name。 现在如果我在编译时不知道属性的名称,我该如何将该属性添加到动态。 我发现了这个问题

所以,有一个复杂的调用绑定器等概念……首先很难得到它。这样做的更简单的方法是什么?

 dynamic d = new ExpandoObject(); ((IDictionary)d)["test"] = 1; //now you have d.test = 1 

这是一种更清洁的方式

var myObject = new ExpandoObject() as IDictionary; myObject.Add("Country", "Ireland");

你也可以这样做: –

 Dictionary coll = new Dictionary(); coll.Add("Prop1","hello"); coll.Add("Prop2",1); System.Dynamic.ExpandoObject obj = dic.Expando(); //You can have this ext method to better help public static ExpandoObject Expando(this IEnumerable> dictionary) { var expando = new ExpandoObject(); var expandoDic = (IDictionary)expando; foreach (var item in dictionary) { expandoDic.Add(item); } return expando; }