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对象进行反射,有待完善记录一下
Object 反射 List的更多相关文章
- Scala对class/object反射
近期有需求,要根据解析字符串,根据字符串的内容去调用方法.想到的基本就是使用反射.但是基本上能找到的资料,全没有讲scala的反射.只有零星点点的讲解.大部分都是用scala的语法写java反射最后翻 ...
- day26——tyoe元类与object的联系、反射、函数与方法的区别、双下方法
day26 type元类与object联系 type 获取对象从属于的类 python 中一切皆对象, 类在某种意义上也是一个对象,python中自己定义的类,以及大部分内置类,都是由type元类(构 ...
- C#基础系列——反射笔记
前言:使用反射也有几年了,但是一直觉得,反这个概念很抽象,今天有时间就来总结下这个知识点. 1.为什么需要反射: 最初使用反射的时候,作为小菜总是不理解,既然可以通过new 一个对象的方式得到对象,然 ...
- C#的反射机制
using System; using System.Collections; using System.Collections.Generic; using System.IO; using Sys ...
- C# 反射相关的东西
public class PlugingManager { //插件装载器 public ArrayList Plugins = new ArrayList(); ...
- 在C++中反射调用.NET(三)
在.NET与C++之间传输集合数据 上一篇<在C++中反射调用.NET(二)>中,我们尝试了反射调用一个返回DTO对象的.NET方法,今天来看看如何在.NET与C++之间传输集合数据. 使 ...
- Go语言反射规则
Go语言反射规则 - The Laws of Reflection 转:http://my.oschina.net/qbit/blog/213720 原文地址:http://blog.golang.o ...
- java的反射应用
class B{ public static void main(String[] arg){ Class c_a = Class.forName(packageName + "." ...
- 23 The Laws of Reflection 反射定律:反射包的基本原理
The Laws of Reflection 反射定律:反射包的基本原理 6 September 2011 Introduction 介绍 Reflection in computing is th ...
随机推荐
- Windows7下Docker的安装
转自 https://blog.csdn.net/xiangxiezhuren/article/details/79698913 无法打开图3,打开属性.给其添加git路径 无法使用图2下载 h ...
- Qt Gui 第三章~第四章
一.图片资源的调用 如上图是我图片存放的位置跟qrc的命名: 如下则是qrc对应的编写格式: <RCC> <qresource> <file>images/icon ...
- Devxtreme 显示Master-Detail数据列表, 数据显示颜色
////刷新3/4簇Grid //function GetClusterGrid(id, coverageId, clusterId) { // var region = getRegionCityN ...
- js集合
var list = {};//声明 List[0] = 52;//赋值 List[1] = 57;//赋值
- Spring5源码阅读环境搭建-gradle构建编译
前沿:Spring系列生态十分丰富,涉及到各个方面.但是作为Spring生态的核心基础Spring,是最重要的环节,需要理解Spring的设计原理,我们需要解读源码. 在构建Spring源码阅 ...
- LINUX使用SSH远程终端时,如何将运行时间长的程序在后台挂起,下次SSH登陆时继续使用同一个SHELL?
我在某个平台上购买了一个云服务器,LINUX操作系统无图形化界面,硬盘空间较小.虽然在平台上可以通过其自带网页版VNC界面登陆SHELL进而操控云主机,但是每次需要操控都得打开网页登陆进平台,然后再进 ...
- rest_framework:响应器(渲染器)
一.作用: 根据用户的请求url或者用户可接受的类型.筛选出合适的渲染组件 用户请求url: http://127.0.0.1:8000/test/?format=json http://127.0. ...
- 关于强类型、ViewData
对于ASP.NET MVC中页面强类型的个人理解 进入ASP.NET MVC学习 发现很多和winfrom不同的东西,但是利用的C#语言还是没有变化,更多的是利用了新的语言,html jquery ...
- linq和初始化器
对象初始化器 在没有初始化器之前,我们初始化一个对象可能需要在构造函数内对属性赋值,或者先实例化一个对象,在一个一个的对其属性赋值. 使用初始化器: 已知类型:var query = new Pers ...
- Echarts--来自官网
引入 ECharts ECharts 3 开始不再强制使用 AMD 的方式按需引入,代码里也不再内置 AMD 加载器.因此引入方式简单了很多,只需要像普通的 JavaScript 库一样用 scrip ...