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

  • 相关阅读:
    ASP.NET 下载文件方式
    分享各大平台接口(空间,微博)
    BitmapToASCii
    C#操作进程(Process)
    Config ConnectionStrings
    Import Excel void (NPOI)
    C# Serialize
    C# 属性
    调用存储过程的方法
    Redis配置与安装
  • 原文地址:https://www.cnblogs.com/xiesong/p/10476169.html
Copyright © 2011-2022 走看看