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

  • 相关阅读:
    Timer Pattern
    la négation
    expression de la fréquence
    .NET 索引器
    JQuery.Gantt(甘特图) 开发指南
    .NET 预处理器指令
    .NET 数据类型之匿名类型(var)
    .NET base与this
    .NET using关键字
    .NET 基础语句
  • 原文地址:https://www.cnblogs.com/xiesong/p/10476169.html
Copyright © 2011-2022 走看看