向expando对象

时间:2015-05-05 14:24:37

标签: c#

我想做这样的事情:

 dynamic eo = new ExpandoObject();
    var line = sr.ReadLine();
    if (line.Contains(":"))
    {
        var data = line.Split(':');
        if (data.Length >= 2)
        {
            eo.data[0] = data[1];
        }
    }

即:添加一个名称位于此数组内的属性。 我得到:'System.Dynamic.ExpandoObject' does not contain a definition for 'data'

我想在运行时创建此属性:属性的名称必须与位于0位置的数据数组内的值的名称相同

1 个答案:

答案 0 :(得分:5)

你的问题有点含糊不清,但是:

假设data[0]包含字符串"hello"data[1]包含字符串"world",我相信你要做的就是这个(伪代码):< / p>

eo.hello = world;

如果是这样,您只需将ExpandoObject转换为IDictionary<string, object>

即可
var dictionary = eo as IDictionary<string, object>;
dictionary.Add(data[0], data[1]);