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(但没有接口灵活),后面的类只需要继承此基类就可以了。

  • 相关阅读:
    linux getch()实现
    cppcheck 下载与安装(Liunx)
    apt-get 命令
    nanopb 文档
    VS调试技术
    c 单元测试 check
    GDB 调试
    GCC选项 –I,-l,-L
    作业66
    zhuoye
  • 原文地址:https://www.cnblogs.com/xiesong/p/10476169.html
Copyright © 2011-2022 走看看