加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 18:22:12 所属栏目:百科 来源:网络整理
导读:通常,我们可以创建这样的属性, dynamic expando = new ExpandoObject();expando.Price = 45k;expando.Value = "Good"; 在我的情况下,直到运行时我才会知道诸如“价格”或“价值”之类的属性.如何,我可以创建这样的动态属性.就像是, dynamic expando = new Ex
通常,我们可以创建这样的属性,
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>首先.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读