zoukankan      html  css  js  c++  java
  • 使用Newtonsoft序列化对象,实现深拷贝

    工作记录

    深拷贝:全新创建一个对象,值与复制对象一致,两个对象互不相关,修改一个对象不会影响到另一个对象

    浅拷贝:全新创建一个对象,值与复制对象一致,两个对象相关,修改一个对象影响到另一个对象

    在工作中需要将一个对象进行深拷贝:

    做法1:使用反射

    做法2:使用序列化

    这里使用做法2 利用Newtonsoft.Json先对 对象做一次序列化,再做一次反序列化

    添加Newtonsoft.Json引用

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Newtonsoft.Json;
    
    namespace 使用序列化和反序列化来进行对象的深拷贝
    {
        class Program
        {
            static void Main(string[] args)
            {
                test a = new test() { id = 1, name = "LXP1", age = 22 };
                Console.WriteLine(a.ToString());
                test b = a;
                a.name = "LXP2";
                Console.WriteLine(a.ToString());
                Console.WriteLine(b.ToString());
    
                test c = new test() { id = 3, name = "LXP3", age = 33 };
                test d = JsonConvert.DeserializeObject<test>( JsonConvert.SerializeObject(c));
                c.name = "LXP33";
                Console.WriteLine(d.ToString());
                Console.Read();
            }
        }
        class test
        {
            public int id { get; set; }
            public string  name { get; set; }
            public int age { get; set; }
            public override string ToString()
            {
                return $"id={id},name={name},age={age}";
            }
        }
    }
    

      

  • 相关阅读:
    AJAX.NET应用异步注册
    [原创]ASPNET1.1分页控件源代码
    prototype.js 1.4版开发者手册
    vs.Net2003无法打开或创建Web应用程序若干解决办法.
    连连看算法
    WEB连连看
    最近公司要搞WEB在线小游戏,我却对游戏人工AI开始了性趣。。
    在vs2003的Win32项目中使用 MFC
    javascript 拼图游戏 v1.0
    IP包过滤
  • 原文地址:https://www.cnblogs.com/lixipeng/p/10255118.html
Copyright © 2011-2022 走看看