首页 > 编程语言 >C# 对象序列化和反序列化复制

C# 对象序列化和反序列化复制

时间:2023-07-19 16:23:16浏览次数:27  
标签:Copy return C# JsonConvert default 复制 obj 序列化

    /// <summary>
        /// 对象深度Copy
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static T DeepCopy<T>(T obj)
        {
            if (Object.ReferenceEquals(obj, null))
            {
                return default(T);
            }
            string s = JsonConvert.SerializeObject(obj);
            return JsonConvert.DeserializeObject<T>(s);
        }

        /// <summary>
        /// 对象深度Copy
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static Tout DeepCopy<Tin, Tout>(Tin obj)
        {
            if (Object.ReferenceEquals(obj, null))
            {
                return default(Tout);
            }
            string s = JsonConvert.SerializeObject(obj);
            return JsonConvert.DeserializeObject<Tout>(s);
        }

 

标签:Copy,return,C#,JsonConvert,default,复制,obj,序列化
From: https://www.cnblogs.com/hofmann/p/17565931.html

相关文章

  • colab 导入d2l包
    本地电脑木得GPU,自己CPU训练模型贼慢,于是打算来colab训练我本来是这样导入!pipinstalld2l结果导入很慢,等待时间过长,就去网上搜了搜!pipinstalld2l==0.14加了版本号就变得很快了。(现在更新到0.15.1了,但不影响)......
  • 浅析npm init、create、exec,npx。
    npm-execnpmexecnpmexec<pkg>npmxnpmx<pkg>npm官方文档中指出x,其实就是exec的别名,通俗来讲意思就是npmexec、npmx,两个命令是完全等价的。npmexec<pkg>的执行流程-在本地查找是否有<pkg>对应的npm包-若找到,则运行这个包的package.json中bin字段对应的可执......
  • CMU15445 B+Tree
    首先,上一个taskbufferpool和这里的b+tree具体实现肯定不一样,关于具体的存储的层次也不一样;在bufferpool里,数据以page为单位,在b+tree中,每个索引结点而言,存储了很多的key-value,每个value对应一个子节点(子节点是用page_id来标识),需要从key找对应的page_id,这里p......
  • 微信、QQ这类IM APP怎么做——谈谈WebSocket
    1、WebSocket的使用场景(1)社交聊天聊天特点:低延迟,高及时。(2)弹幕(3)多玩家游戏(4)协同编辑(5)股票基金实时报价(6)体育实况更新(7)视频会议/聊天(8)基于位置应用(9)在线教育(10)智能家居家里的智能设备的状态必须要实时展现到......
  • 网络编程 p4 TCP编程
    TCP编程基本介绍基于客户端——服务端的网络通信;底层使用的是TCP/IP协议;应用场景举例:客户端发送数据,服务端接收并显示在控制台;基于Socket的TCP编程;示意图netstat指令netstat-an可以查看当前主机网络情况,包括端口监听情况和网络连接情况;netstat-an|more......
  • Elasticsearch查询
    Elasticsearch查询什么是Elasticsearch?Elasticsearchisareal-time,distributedstorage,search,andanalyticsengineElasticsearch是一个实时的分布式存储、搜索、分析的引擎。介绍那儿有几个关键字:实时分布式搜索分析于是我们就得知道Elasticsearch......
  • CF786E ALT 题解
    为什么你们第一眼都能想到最小割,我第一眼都只能想到费用流。为什么你们的做法都这么短,我一写就是\(5KB\)。费用流有一个基本矛盾,就是守卫只需拥有一只狗和每一个人都需要守卫有狗的基本矛盾。由于需求与供给不平衡,所以流量不好确定。如果有人费用流过了来长沙火车站,疯狂星期四......
  • 通过CM集群管理的openGauss数据库选主策略
    通过CM集群管理的openGauss数据库选主策略前提条件:集群内参与选主的备实例数量超过集群实例总数的一半细分策略:(1)cma会尝试拉起数据库集群原始主实例,6s内成功拉起则无需新一轮仲裁(2)local_term最大的(3)local_last_xlog_location最大的(4)静态主local_static_role(5)与......
  • 使用mvn test -Dtest=具体方法名,结果报:No tests were executed!
    执行命令:mvnw.cmdtest-Dtest=com.cy.store.mapper.UserMapperTests#print问题描述:[ERROR]Failedtoexecutegoalorg.apache.maven.plugins:maven-surefire-plugin:2.22.2:test(default-test)onprojectstore:Notestswereexecuted! (Set-DfailIfNoTests=falseto......
  • CentOS7安装Mysql8并进行主从复制配置
    场景CentOS7中安装Mysql8并配置远程连接和修改密码等:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/131807269在上面实现安装Mysql8的基础上,克隆出两台机器,修改ip后进行mysql的主从复制搭建。Mysql主从复制在主库上把数据更改记录到二进制日志中(BinaryLog)中,这......