小编dec*_*cks的帖子

将泛型对象列表转换为非泛型类型列表

我正在尝试将 a ListofSystem.Object对象转换为 a Listof 强类型对象。

这是我得到的错误:

“System.Collections.Generic.List`1[System.Object]”类型的对象无法转换为“System.Collections.Generic.List`1[TestApp.Tsc_Mrc_Step]”类型。

目的是因为我正在为我的项目编写一个业务数据层,您所要做的就是将您的类和属性命名为与数据库中的实体相同的名称,并且数据层将自动填充引用的表作为在班级。

业务数据层使用反射、泛型和对象来处理所有这些。

下面是我尝试将对象列表放入已知类型列表的代码。问题是,对象是已知类型,但我将其作为对象传递....如何在不知道它是什么的情况下将其转换为已知类型?

            bool isCoollection = false;
            Type t = GetTypeInsideOfObjectByTypeName(o, tableName, out isCoollection);

            List<object> objectColl = new List<object>();

            object obj = Activator.CreateInstance(t);
            if (obj != null)
            {
                PropertyInfo[] objectProps = obj.GetType().GetProperties();
                foreach (PropertyInfo op in objectProps)
                {
                    if (HasColumn(reader, op.Name))
                    {
                        op.SetValue(obj, reader[op.Name]);
                    }
                }

                if (isCoollection)
                {
                    objectColl.Add(obj);
                }
            }

            if (isCoollection)
            {
                IEnumerable<object> objs = objectColl.AsEnumerable();

                SetObject(o, objs);
            }
            else
            {
                SetObject(o, obj);
            }
Run Code Online (Sandbox Code Playgroud)

这是 …

c# generics reflection object

1
推荐指数
1
解决办法
4123
查看次数

标签 统计

c# ×1

generics ×1

object ×1

reflection ×1