zoukankan      html  css  js  c++  java
  • 【随记】实体对象深拷贝

    开发中经常遇到需要深拷贝一个对象,再对它做处理。最方便的是通过序列化反序列化方式新创建一个对象。

    要支持序列化和反序列化,类必须加特性   Serializable

    可以通过一个接口来实现。代码如下:

    namespace Model
    {
        //继承此接口,增加拷贝功能
        public interface IClone
        {
        }
        
        //注意要使用此方法复制对象的类必须有 [Serializable] 标记
        [Serializable]
        public static class CloneModel
        {
            public static T Clone<T>(this T model) where T : IClone
            {
                using (MemoryStream memoryStream = new MemoryStream())
           {         BinaryFormatter formatter
    = new BinaryFormatter();   formatter.Serialize(memoryStream, model);   memoryStream.Position = 0;   return (T)formatter.Deserialize(memoryStream);
           } } } }

    以后所有的实体类都实现接口IClone就可以,甚至可以做一个基类 BaseModel(但没有接口灵活),后面的类只需要继承此基类就可以了。

  • 相关阅读:
    jquery学习笔记1
    javascript常用函数(1):jquery操作select 基本操作
    Angular.js学习笔记
    Mutex, semaphore, spinlock
    Linq 常用方法解释
    装B必备之 快捷键配置
    HttpWebRequest
    HttpClient get post
    js获取url 参数
    整洁代码1
  • 原文地址:https://www.cnblogs.com/xiesong/p/10476169.html
Copyright © 2011-2022 走看看