我是新手,我想用这种方法给一个自定义类赋值,我参考了
http://blog.csdn.net/vip__888/archive/2010/04/19/5500588.aspx
我的类中有string 和int 和 datetime 三种类型我改写了一点点就是
 public static IList<T> GetData(SqlDataReader dr)
        {
            List<T> list = new List<T>();
            Type type = typeof(T);
            PropertyInfo[] properties = type.GetProperties();            while (dr.Read())
            {
                T t = Activator.CreateInstance<T>();                for (int i = 0; i < properties.Length; i++)
                {
                    //properties[i].SetValue(t, dr[i + 1], null);                         if (properties[i].GetType() == typeof(int))
                    {
                        properties[i].SetValue(t, Convert.ToInt32(dr[i + 1]), null);
                    }
                    //if (properties[i].GetType() == typeof(string))
                    //{                    //}
                }
                list.Add(t);
            }
            return list;
        }
但是这个方法返回错误,当然有错误
无法将类型为“System.Collections.Generic.List`1[My_serverHelp.my_server]”的对象强制转换为类型“My_serverHelp.my_server”。 
my_serHelp是我自己写的类,请问这个类要如何引用?

解决方案 »

  1.   


    T t = Activator.CreateInstance<T>();
    List<t> list = new List<t>();要先确定T,再定义list
      

  2.   

    这个错误提示,是在哪一句呢?GetData所在类是怎么定义的?外面是怎么调用GetData这个方法的?都贴出来你的代码
      

  3.   

    http://topic.csdn.net/u/20090918/20/6c018302-874f-4358-9bd4-4ccd67fd18c1.html
      

  4.   

    是我在试图调用时产生的//my_server server = my_server.usp_select_server_ID1();        //Response.Write(server.Who_server);
            //SqlDataReader dr = dl.sqlhelp.dr("usp_select_server_ID1");
            //GridView1.DataSource = dr;
            //GridView1.DataBind();
            //dr.Close();
            SqlDataReader dr = sqlhelp.dr("usp_select_server_ID1");        //my_server server = (my_server)my_listHelp<my_server>.GetData(dr);        //Response.Write(server.Who_server);
            //List<my_server> server =(List<my_server>) my_listHelp<my_server>.GetData(dr);
            my_server serv = ConvertTo<>()        for (int i = 0; i < server.Count; i++)
            {
                Response.Write(server[i].Who_server + "<br/>");
            }