C# 对象二进制序列化

摘要:
使用System.Runtime.Serialization.Formatters。二进制的PublicclassSerializationUnit{//////将对象序列化为字节数组///publicstaticbyte[]SerializeObject(objectobj){if(obj==null)returnnull;MemoryStream
using System.Runtime.Serialization.Formatters.Binary;
public class SerializationUnit
{        
    /// <summary>
    
/// 把对象序列化为字节数组
    
/// </summary>
    public static byte[] SerializeObject(object obj)
    {
        if (obj == null)
            return null;
        MemoryStream ms = new MemoryStream();
        BinaryFormatter formatter = new BinaryFormatter();
        formatter.Serialize(ms, obj);
        ms.Position = 0;
        byte[] bytes = new byte[ms.Length];
        ms.Read(bytes, 0, bytes.Length);
        ms.Close();
        return bytes;
    }

    /// <summary>
    
/// 把字节数组反序列化成对象
    
/// </summary>
    public static object DeserializeObject(byte[] bytes)
    {
        object obj = null;
        if (bytes == null)
            return obj;
        MemoryStream ms = new MemoryStream(bytes);
        ms.Position = 0;
        BinaryFormatter formatter = new BinaryFormatter();
        obj = formatter.Deserialize(ms);
        ms.Close();
        return obj;
    }
}

免责声明:文章转载自《C# 对象二进制序列化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用springcloud gateway搭建网关(分流,限流,熔断)字节序转换详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何使用JMeter从文件中提取数据

在性能测试方面,重用响应数据至关重要。几乎(如果不是全部!)负载测试场景假设您: 从先前的响应中提取有趣的方面,并在下一个请求中重用它们(也称为相关) 确保实际响应符合预期(又称断言) 因此,如果您是性能测试工程师,那么了解如何实现此关联和断言逻辑非常重要。幸运的是,BlazeMeter的知识库和JMeter博客已经有一些关于如何做到这一点的精彩文章。...

温故知新-网络基础1-ip地址计算

网络地址换算 1、网络地址分类 A类:0.0.0.0到127.255.255.255   255.0.0.0/8   B类:128.0.0.0到191.255.255.255   255.255.0.0/16 C类:192.0.0.0到223.255.255.255  255.255.255.0/24 D类:224.0.0.0到239.255.255.25...

Newtonsoft.Json 的基本用法

Ø  前言 说起 C# 对 JSON 的操作(序列化与反序列化),大家都会想到 JavaScriptSerializer、DataContractJsonSerializer 与 Newtonsoft.Json 等。三者都是用于操作 JSON 的框架利器,它们又有什么区别呢?本文包括: 1.   常用 JSON 操作框架(JavaScriptSeriali...

Apache Thrift系列(一):Thrift基本及IDL语法

一、Thrift介绍   Thrift是一个轻量级、跨语言的远程服务调用框架,最初由Facebook开发,后面进入Apache开源项目。主要包含三大部分:代码生成、序列化框架、RPC框架,相当于protoc + protobuffer + grpc,并且支持大量语言(C++、Go、Java、Python、PHP、Ruby等),是一套全栈式的RPC解决方案...

搞懂js中小数运算精度问题原因及解决办法

js小数运算会出现精度问题 js number类型 JS 数字类型只有number类型,number类型相当于其他强类型语言中的double类型(双精度浮点型),不区分浮点型和整数型。 number类型不同进制 number 有四种进制表示方法,十进制,二进制,八进制和十六进制 表示方法 二进制: 0B或者0b (数字0和字母B或者小写字母b) ,后接...

go学习-结构体与JSON序列化

结构体与JSON序列化 JSON数据与结构体之间相互转换 基本的序列化:json.Marshal()(序列化:结构体-->JSON格式的字符串)与json.Unmarshal(反序列化:JSON格式的字符串-->结构体) package main import ("fmt" "encoding/json" ) //Student 学生 ty...