繁体   English   中英

是否可以使用 ExpandoObject 创建运行时属性?

[英]Is it possible to use ExpandoObject to create run-time properties?

通常,我们可以创建这样的属性,

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>开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM