• 对象复制帮助类DeepCopy


    有的时候我们在对一个引用类型的对象进行传递操作的时候希望不要直接修改传递过来的对象,而是复制出一份来操作的时候就可以用下面的类进行复制

    using System.IO;
    using System.Runtime.Serialization;
    using System.Collections;
    using System.Collections.Generic;
    
    namespace MED.ContactManager.View
    {   
        public static class ExtensionMethods
        {
            public static T DeepCopy<T>(this T oSource,List<System.Type> knowTypes)
            {
                T oClone;            
                DataContractSerializer dcs = new DataContractSerializer(typeof(T),knowTypes);
                
                using (MemoryStream ms = new MemoryStream())
                {
                    dcs.WriteObject(ms, oSource);
                   
                    ms.Position = 0;
                    oClone = (T)dcs.ReadObject(ms);
                }           
                return oClone;
            }
            public static T DeepCopy<T>(this T oSource)
            {
                T oClone;
                DataContractSerializer dcs = new DataContractSerializer(typeof(T));
    
                using (MemoryStream ms = new MemoryStream())
                {
                    dcs.WriteObject(ms, oSource);
    
                    ms.Position = 0;
                    oClone = (T)dcs.ReadObject(ms);
                }
                return oClone;
            }
         }
    }
  • 相关阅读:
    ng-repeat高级用法
    使用 CSS3 实现超炫的 Loading(加载)动画效果
    ADO.NET访问数据库
    连接查询和分组查询
    T-SQL数据查询基础
    使用SQL语句操作数据
    使用表组织数据
    SQL Sever数据库
    使用属性升级Mybank
    C# 语法
  • 原文地址:https://www.cnblogs.com/lyghost/p/2933606.html
Copyright © 2020-2023  润新知