W~C停用

导航

利用 System.Runtime.Serialization序列化与反序列化完成引用对象的复制

/// <summary>
        /// 深度克隆一个对象
        /// </summary>
        /// <typeparam name="T">被克隆对象的类型</typeparam>
        /// <param name="t">被克隆的对象</param>
        /// <returns>返回一个新的T对象</returns>
        public T Clone<T>(T t)
        {
            using (Stream objectStream = new MemoryStream())
            {
                //利用 System.Runtime.Serialization序列化与反序列化完成引用对象的复制
                IFormatter formatter = new BinaryFormatter();
                formatter.Serialize(objectStream, t);
                objectStream.Seek(0, SeekOrigin.Begin);
                return (T)formatter.Deserialize(objectStream);
            }
        }

  

posted on 2021-06-29 11:09  W~C停用  阅读(191)  评论(0)    收藏  举报