如何将多个字段添加到同一个对象

时间:2016-04-29 07:23:25

标签: c#

问题是如何动态地向动态创建的对象添加属性和值

之前曾问过

  

我想动态地向对象添加多个字段,我正在使用   下面的代码,但每个循环删除前一个并添加   最新的,但我希望对象保留所有值。

SqlDataReader sdr = cmd.ExecuteReader();
var columns = Enumerable.Range(0, sdr.FieldCount).Select(sdr.GetName).ToList();
if (sdr.HasRows)
{
    allRows = new ArrayList();
    while (sdr.Read())
    {
        dynamic obj = new ExpandoObject();
        foreach (string item in columns)
        {                           
           obj.item = sdr[item];
        }                        
        allRows.Add(obj);
     }                    
}

2 个答案:

答案 0 :(得分:1)

您必须使用反射在运行时将成员添加到您的ojbect或Have a look at this

答案 1 :(得分:1)

DataTable正是您正在寻找的。不使用基元执行此类常见任务,而是使用内置的DataAdapter在一个函数调用中从数据库中获取所有值。即使您正在寻找命名属性成员,强类型DataSets也会为您解决此问题。