从列表运行时创建对象及其属性

时间:2017-04-07 10:49:52

标签: c# dynamic .net-4.0 office-interop

我需要在运行时创建动态对象及其属性,然后创建此对象的实例来存储值。

为什么我想要上面的逻辑!

我在C#中读取excel文件,第一行代码是标题,它实际上是属性,后跟每一行都是记录,它是动态对象的实例。

 List<string> ExcelDataHeader = new List<string>();
         for (int y = 2; y <= colCount; y++)
           {
             ExcelDataHeader.Add(xlRange.Cells[headerRow, y].Value2.ToString());
           }

  dynamic MyDynamic = new System.Dynamic.ExpandoObject();
    ??????????

我需要在对象

中返回excel读取数据

1 个答案:

答案 0 :(得分:2)

可以在这里使用ExpandoObject - 它会起作用,但你需要使用字典API:

IDictionary<string, object> obj = new ExpandoObject();
obj["id"] = 123;
obj["name"] = "Fred";

// this is the "dynamic" bit:
dynamic dyn = obj;
int id = dyn.id; // 123
string name = dyn.name; // "Fred"

然而,我没有看到这一点。由于您不会通过obj.PropertyName之类的内容引用C#代码中的对象,因此dynamic的目的很少。您也可以将每条记录存储在Dictionary<string,object>或类似内容中。 根据您所描述的内容,您无法将MyDynamic实际用作dynamic对象。