首页 > 其他分享 >.Net 序列化

.Net 序列化

时间:2023-04-22 13:44:35浏览次数:50  
标签:tbLabel Add ms var new Net 序列化 DataTable

.Net 序列化

  • 将实体转化为流的形式,传递给他人。他人再反序列化就可以得到实体

二进制

var tbLabel = new DataTable("tbLabel");
var ms = new MemoryStream();
tbLabel.Columns.Add("cWorkOrder");
tbLabel.Rows.Add(new[] { "123" });
BinaryFormatter a1 = new BinaryFormatter();
a1.Serialize(ms, tbLabel);
ms.Position = 0;
var dt2 = (DataTable)a1.Deserialize(ms);

XML序列化

var tbLabel = new DataTable("tbLabel");
var ms = new MemoryStream();
tbLabel.Columns.Add("cWorkOrder");
tbLabel.Rows.Add(new[] { "123" });
XmlSerializer a1 = new XmlSerializer(typeof(DataTable));
a1.Serialize(ms, tbLabel);
ms.Position = 0;
var dt2 = (DataTable)a1.Deserialize(ms);

DataContractSerializer

var tbLabel = new DataTable("tbLabel");
var ms = new MemoryStream();
tbLabel.Columns.Add("cWorkOrder");
tbLabel.Rows.Add(new[] { "123" });
DataContractSerializer ser =new DataContractSerializer(typeof(DataTable));
ser.WriteObject(ms,tbLabel);
ms.Position = 0;
var dt2 = (DataTable)ser.ReadObject(ms);

Json序列化

  • 不推荐使用,丢失了TableName
  • System.Text.Json 序列化容易出错
var tbLabel = new DataTable("tbLabel");
var ms = new MemoryStream();
tbLabel.Columns.Add("cWorkOrder");
tbLabel.Rows.Add(new[] { "123" });
Newtonsoft.Json.JsonSerializer serializer = new Newtonsoft.Json.JsonSerializer();
var s= Newtonsoft.Json.JsonConvert.SerializeObject(tbLabel);
var dt2 = Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(s);

BinaryWriter BinaryReader

  • 只能是基元数据类型

标签:tbLabel,Add,ms,var,new,Net,序列化,DataTable
From: https://www.cnblogs.com/Alex-Mercer/p/17342918.html

相关文章

  • 一个可用于生产项目 基于 .NET 6 自研ORM
    FastFramework作者Mr-zhong代码改变世界....一、前言FastFramework基于NET6.0封装的轻量级ORM框架支持多种数据库SqlServerOracleMySqlPostgreSqlSqlite优点:体积小、可动态切换不同实现类库、原生支持微软特性、流畅API、使用简单、性能高、模型数据绑定采用......
  • 教我怎么用docker的network
    Docker提供了一种为容器创建和管理网络以相互通信的方法。创建Docker网络有多种方法,最简单的方法是使用dockernetworkcreate命令。此命令创建一个具有指定名称和驱动程序的新网络。驱动程序指定网络上的容器如何相互通信。最常见的驱动程序是桥接驱动程序,它用于为单个......
  • golang net/rpc inject data to service function
    在golang中,net/rpc库比较牛,只需要写函数,然后使用现成的ServerCodec就可以完成rpc服务了。但是有个问题,service函数的参数都是来自客户端的,如果服务器想为某个特殊的函数注入一些配置或状态参数,就不好弄了。解决方案:修改service函数,比如原来的参数是FuncArgs结构体,现在改成t......
  • 29、Pipeline Job进阶之部署应用至Kubernetes集群
    PipelineJob进阶之部署应用至Kubernetes集群在jenkins上的k8s云节点,在原来maven-and-docker模板的基础之上,添加容器也可以添加pod模板,通过继承的方式来实现maven-docker-kubectl方式来定义添加podtemplate添加容器:使用kubesphere/kubectl:latest镜像安装插件用于认证到k8s集群之......
  • k3s 基础 —— 配置 kubernetes-dashboard 的 token 过期时间
    拉取配置到本地:kubectlgetdeploykubernetes-dashboard-nkubernetes-dashboard-oyaml>dashboard-deploy.yaml增加参数:spec:containers:-args:---auto-generate-certificates---namespace=kubernetes-dashboard---to......
  • SpringDataRedis的序列化方式和StringRedisTemplate手动序列化详解
    一.SpringDataRedis之前新创建一个Spring项目,在进行配置完成redis和common-pool依赖:1.引入依赖redis:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis-reactive</artifactId></dependency>......
  • 快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台
    在上一篇我们已经初步认识了Kubernetes,在本篇我们就开始着手搭建kubernetes,具体操作如下:1.环境准备(1).环境说明节点名称机器IP系统master10.2.3.191CentOS7.7node110.2.3.192CentOS7.7node210.2.3.190CentOS7.7(2).禁止swap(三台机器上都操作)swapoff-a#临时改配置文件/etc/f......
  • Windterm-SSH/Sftp/Shell/Telnet/Serial 客户端
    如果图片查看不了的话,请关注公众号@生活处处有BUGWindTerm是一款开源免费、跨平台SSH/Sftp/Shell/Telnet/Serial客户端,即远程连接工具,还跨平台,支持Windows、Linux和macOS。特征实现了SSHv2、Telnet、RawTcp、Serial、Shell协议。会话认证时支持SSH自动执行。支......
  • .Net Core学习心得
    4.21:简单RBAC项目获取用户所在权限的菜单项第一款方案:用户表、用户角色表、角色表、角色权限表、权限表五表联查publicList<PermissionDto>GetMenus(longuserid){//获取全部的数据varuser=_dbContext.Users.AsQueryable();varrole=_dbContext.Roles.AsQueryable()......
  • Kubernetes中使用Helm2的安全风险
    参考 http://rui0.cn/archives/1573英文文章 https://blog.ropnop.com/attacking-default-installs-of-helm-on-kubernetes/集群后渗透测试资源 https://blog.carnal0wnage.com/2019/01/kubernetes-master-post.htmlHelm介绍:Kubernetes是一个强大的容器调度系统,通常我们......