通常,我们可以创建这样的属性,
dynamic expando = new ExpandoObject(); expando.Price = 45k; expando.Value = "Good";
在我的情况下,直到运行时我才会知道诸如“价格”或“价值”之类的属性.如何,我可以创建这样的动态属性.就像是,
dynamic expando = new ExpandoObject(); expando[properties[0]] = 45k; expando[properties[1]] = "Good"; expando[properties[2]] = "Red"; expando[properties[3]] = 8;
无论如何要实现这种行为.
解决方法
只需使用它实现IDictionary< string,Object>的事实:
IDictionary<string,Object> expando = new ExpandoObject(); expando[properties[0]] = 45; expando[properties[1]] = "Good"; expando[properties[2]] = "Red"; expando[properties[3]] = 8; dynamic d = expando; // Now use the properties as normal
另一方面,如果你在执行时间之前不知道属性,实际上会消耗它们的是什么?使用ExpandoObject可能仍然有意义 – 但同样可以使用Dictionary< string,object>首先.