zoukankan      html  css  js  c++  java
  • 面向服务(接口)开发过程中常用的实体类数据复制解决方案

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

     private void EntityToEntity<TSource, TTarget>(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); } } }

    海的呐喊
  • 相关阅读:
    兼容利器之X-UA-Compatible
    SQL Server之游标的基础知识
    SQL 按特定字段值排序
    NodeJS 开篇 牛刀小试
    临时表之IF-ELSE
    css中如何设置字体
    怎么做到不加班?
    C# .net中cookie值为中文时的乱码解决方法
    HTML5商城开发一 楼层滚动加载数据
    QQ浏览器X5内核问题汇总
  • 原文地址:https://www.cnblogs.com/kejie/p/5674457.html
Copyright © 2011-2022 走看看