zoukankan      html  css  js  c++  java
  • Object 反射 List

     public static object DeserializeModel<T>(object dataModel)
            {
                Type type = typeof(T);
                Object entity = Activator.CreateInstance(type);
                Type data = dataModel.GetType();
                if (data.Name.Contains("List"))
                {
                    List<T> listCall = new List<T>();
                    //需要被转换的对象
                    IEnumerable<object> list = dataModel as IEnumerable<object>;
                    foreach (var sourceModel in list)
                    {
                        entity = Activator.CreateInstance(type);
                        //循环需要被反对对象的字段
                        foreach (var item in type.GetProperties())
                        {
                            var source = sourceModel.GetType();
                           if (source.GetProperty(item.Name) != null)
                                {
                                    var val = source.GetProperty(item.Name).GetValue(sourceModel, null);
                                    item.SetValue(entity, val);
                                }
                         
                        }
                        listCall.Add((T)entity);
                    }
                    return listCall;
    
                }
                else
                {
                    foreach (var item in type.GetProperties())
                    {
                        if (data.GetProperty(item.Name) != null)
                        {
                            var val = data.GetProperty(item.Name).GetValue(dataModel, null);
                            item.SetValue(entity, val);
                        }
    
                    }
                    return (T)entity;
                }
            }

    根据T类型将传入进来的Object对象进行反射,有待完善记录一下

  • 相关阅读:
    python's is&==区别
    python's decorator&wrapper
    objects & values & types
    linux sort命令
    partial function
    proc文件系统
    readlink 获取当前进程对应proc/self/exe
    Workgroup&Domain(Realm)
    python传值&值引用
    Unpacking Argument Lists
  • 原文地址:https://www.cnblogs.com/-Kam/p/9353412.html
Copyright © 2011-2022 走看看