当前位置:编程学习 > C#/ASP.NET >>

传递一个List<T>给类型object的变量,利用反射如何读取List<T>里面的值和数据

建立一个类
class1
{
    private object = _dt;
    public object dt
    {
       set{ dt = value; }
    }
    public string str
    {
         //  输出dt的实体类的值, 封装HTML准备输出数据。
    }
}


UI页

class1 cl = new class1

cl.dt = List<T>

response.write(cl.str);

有点类似GridView的数据源绑定功能,请教各位,谢谢。

--------------------编程问答-------------------- 类似这样? --------------------编程问答--------------------
引用 1 楼 xianfajushi 的回复:
类似这样?

不是,是将List<>赋给了object,object的类型如何读出表。 --------------------编程问答--------------------

            List<int> list = new List<int>();
            for (int i = 0; i < 10; i++)
            {
                list.Add(i);
            }
            TestClass t = new TestClass();
            t.Obj = list;
            PropertyInfo p = t.GetType().GetProperty("Obj");
            object value = p.GetValue(t, null);

//value就是List<int> --------------------编程问答--------------------
引用 3 楼 bdmh 的回复:

            List<int> list = new List<int>();
            for (int i = 0; i < 10; i++)
            {
                list.Add(i);
            }
            TestClass t = new TestClass();
            t.Obj = list;
            PropertyInfo p = t.GetType().GetProperty("Obj");
            object value = p.GetValue(t, null);

//value就是List<int>


object lo = dn.readNews();   //List<T> 赋值
PropertyInfo p = lo.GetType().GetProperty("lo");
object value = p.GetValue(lo, null); 


这样做报错,未将设置对象引用到实例? --------------------编程问答--------------------
引用 3 楼 bdmh 的回复:

            List<int> list = new List<int>();
            for (int i = 0; i < 10; i++)
            {
                list.Add(i);
            }
            TestClass t = new TestClass();
            t.Obj = list;
            PropertyInfo p = t.GetType().GetProperty("Obj");
            object value = p.GetValue(t, null);

//value就是List<int>

按源代码执行,报错,未找到 Property Get 方法。是有什么问题吗? --------------------编程问答--------------------
引用 4 楼 sunnin111 的回复:
Quote: 引用 3 楼 bdmh 的回复:


            List<int> list = new List<int>();
            for (int i = 0; i < 10; i++)
            {
                list.Add(i);
            }
            TestClass t = new TestClass();
            t.Obj = list;
            PropertyInfo p = t.GetType().GetProperty("Obj");
            object value = p.GetValue(t, null);

//value就是List<int>


object lo = dn.readNews();   //List<T> 赋值
PropertyInfo p = lo.GetType().GetProperty("lo");
object value = p.GetValue(lo, null); 


这样做报错,未将设置对象引用到实例?

可以断点检查一下传的属性名和对象的属性名是否一致,有空格也不行 --------------------编程问答-------------------- public string str
{
     return new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(dt);
}
--------------------编程问答-------------------- http://bbs.csdn.net/topics/390596780参考6楼 1楼 --------------------编程问答-------------------- foreach (object item in (dt as Enumerable).GetEnumerator())
{
    foreach (var p in item.GetType().GetPropertites())
    {
        s += p.GetValue(item, null);
    }
}
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,