博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向服务(接口)开发过程中常用的实体类数据复制解决方案
阅读量:6908 次
发布时间:2019-06-27

本文共 1089 字,大约阅读时间需要 3 分钟。

现在面向服务开发基本已经成为B\S、C\S开发必不可少的概念了,之前做过一个WCF服务,在Web端以MVC开发模式去调用这个服务,其中就涉及到了实体类数据的复制,因为Server端的Model和MVC中的Model从理论上说作用域不同,所以当你获取服务返回的数据时,你需要使用实体类去装载这些数据。大致是这样实现的,在Web端声明一个function,(不需要反射,也不需要深克隆)给两个参数,一个是源对象,一个是目标对象。好了接下来有个问题,有时实体类中会有静态字段,所以也得去处理这个静态字段的数据复制问题。源码如下:

private void EntityToEntity
(TSource s) where TSource : new() where TTarget : new() { if (t.GetType().GetFields() != null) { foreach (var p2 in t.GetType().GetFields()) { var s1 = s.GetType().GetField(p2.Name); // 找到来源实体类的字段信息 p2.SetValue(t, s1.GetValue(null)); } } foreach (var p in t.GetType().GetProperties()) // 以目标表为参照对象 { // 复制到本地变量 var p1 = p; { var s2 = s.GetType().GetProperty(p1.Name); if (s2 == null) continue; p1.SetValue(t, s2.GetValue(s, null), null); } } }

 

转载于:https://www.cnblogs.com/kejie/p/5674457.html

你可能感兴趣的文章
javascript js 判断页面是否加载完成
查看>>
【机器学习算法-python实现】决策树-Decision tree(1) 信息熵划分数据集
查看>>
架构思维案例:速学正则
查看>>
使用 IntraWeb (11) - 基本控件之 TIWButton
查看>>
Python数据结构——散列表
查看>>
责任链模式
查看>>
Android 仿携程活动列表边框布局
查看>>
Android 实现ActionBar定制
查看>>
Git 子模块 - submodule(转)
查看>>
iPhone开发笔记[12/50]:内存泄漏是新手必然要经历的痛,NSMutableArray的正确使用...
查看>>
MySQL常用命令大全
查看>>
查看Android应用签名信息
查看>>
MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录...
查看>>
WCF学习之旅—WCF服务的批量寄宿(十三)
查看>>
解决“不是有效的win32应用程序”问题
查看>>
分布拟合——正态/拉普拉斯/对数高斯/瑞利 分布
查看>>
WebStorm for Mac(Web 前端开发工具)破解版安装
查看>>
从0开始--倒序输出。
查看>>
吉特仓库管理系统-.NET打印问题总结
查看>>
sqlplus 返回2 由于命令后没有加分号
查看>>