C# 实现对象浅拷贝Copy(极速复制对象)
C# 实现对象浅拷贝Copy(极速复制对象)
C# Code: /// <summary> /// 对象浅Copy(极速复制对象) /// </summary> /// <typeparam name="TIn"></typeparam> /// <typeparam name="TOut"></typeparam> public static class CSFrameworkClone<TIn, TOut> { private static readonly Func<TIn, TOut> cache = GetFunc(); private static Func<TIn, TOut> GetFunc() { ParameterExpression parameterExpression = Expression.Parameter(typeof(TIn), "p"); List<MemberBinding> memberBindingList = new List<MemberBinding>(); foreach (var item in typeof(TOut).GetProperties()) { if (!item.CanWrite) continue; MemberExpression property = Expression.Property(parameterExpression, typeof(TIn).GetProperty(item.Name)); MemberBinding memberBinding = Expression.Bind(item, property); memberBindingList.Add(memberBinding); } MemberInitExpression memberInitExpression = Expression.MemberInit(Expression.New(typeof(TOut)), memberBindingList.ToArray()); Expression<Func<TIn, TOut>> lambda = Expression.Lambda<Func<TIn, TOut>>(memberInitExpression, new ParameterExpression[] { parameterExpression }); return lambda.Compile(); } /// <summary> /// 克隆对象 /// </summary> /// <param name="tIn"></param> /// <returns></returns> public static TOut CloneSimple(TIn tIn) { return cache(tIn); } } //来源:C/S框架网 | www.csframework.com | QQ:23404761 测试: C# Code: //测试克隆单个对象,浅拷贝 DemoData.MySupplier supplier = new DemoData.MySupplier { Code = "S001", Name = "供应商01", Tel = "0808-88889999", CreateTime = DateTime.Now, Level = 100 }; DemoData.MySupplier clone = CSFrameworkClone<DemoData.MySupplier, DemoData.MySupplier>.CloneSimple(supplier); //来源:C/S框架网 | www.csframework.com | QQ:23404761 扫一扫加微信
参考文档:
C#中实现对象的深拷贝(Deep Copy) C#用ListView实现XP分组样式(图) C#.Net版本自动更新程序及3种策略实现 C#可拖动窗体(实现无标题栏的登录窗体) C#实现.Net Remoting服务端与客户端通信 C# GridView列头添加CheckBox控件实现全选功能 C#实现DevExpress控件换肤功能 详述IComparer,IComparable接口,实现自定义方法比较对象大小并排序(C#) C#.Net组件开发 - 设计时使用自定义属性编辑器持久化对象 标签:C#.Net组件开发 - 设计时持久化对象数组 C#.Net 持久化对象为XML文件 C#.NET C/S结构版本自动升级解决方案之升级包实现 C#源码-Windows服务管理器,实现安装,卸载,启动和停止服务等功能 【原创】C# 深度拷贝对象 使用.NET反射+递归原理实现深度克隆 C# 克隆对象、复制对象(浅拷贝)、复制对象相同属性的值
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |