C# 将对象转换成字节数组(二进制数据)
在将自定义对象或者数组等这样的数据存储到数据库时往往需要转换成二进制字节,尤其是在一些O/RM数据库框架中,下面是转换的函数,一个是将对象转换成二进制字节数组,另一个是将从数据库中读取的二进制流转换成程序中的对象。
这里参考的资源来源,
C#序列化数据对象。它是将对象先转换成字节数组,然后再转换成Base64字符串了,字符串也可以存储到数据库中,但是不如直接将字节数组转换成Blob数据库对象简单:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//引入三个命名空间
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
namespace Logistics
{
public class SerializeObjectToString
{
//将Object类型对象(注:必须是可序列化的对象)转换为二进制序列字符串
public string SerializeObject(object obj)
{
IFormatter formatter = new BinaryFormatter();
string result = string.Empty;
using (MemoryStream stream = new MemoryStream())
{
formatter.Serialize(stream, obj);
byte[] byt = new byte[stream.Length];
byt = stream.ToArray();
//result = Encoding.UTF8.GetString(byt, 0, byt.Length);
result = Convert.ToBase64String(byt);
stream.Flush();
}
return result;
}
//将二进制序列字符串转换为Object类型对象
public object DeserializeObject(string str)
{
IFormatter formatter = new BinaryFormatter();
//byte[] byt = Encoding.UTF8.GetBytes(str);
byte[] byt = Convert.FromBase64String(str);
object obj = null;
using (Stream stream = new MemoryStream(byt, 0, byt.Length))
{
obj = formatter.Deserialize(stream);
}
return obj;
}
}
}
===================下面是直接转换成字节的函数=========================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//引入三个命名空间
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
namespace Logistics
{
public class SerializeObjectToString
{
//将Object类型对象(注:必须是可序列化的对象)转换为二进制序列字符串
public byte[] SerializeObject(object obj)
{
IFormatter formatter = new BinaryFormatter();
byte[] result = null;
using (MemoryStream stream = new MemoryStream())
{
formatter.Serialize(stream, obj);
byte[] byt = new byte[stream.Length];
byt = stream.ToArray();
result=byt;
stream.Flush();
}
return result;
}
//将二进制序列字符串转换为Object类型对象
public object DeserializeObject(byte[] bt)
{
IFormatter formatter = new BinaryFormatter();
object obj = null;
using (Stream stream = new MemoryStream(bt, 0, bt.Length))
{
obj = formatter.Deserialize(stream);
}
return obj;
}
}
}
C# 将对象转换成字节数组(二进制数据)相关推荐
- Json对象转换成Json数组
问题 在写单元测试是报错如下: JSON解析错误:不能将JavaUTIL.AARYLIST实例反序列化到StaskObjo对象令牌中 代码: 自己解决了挺长时间,也没研究出什么好的办法,最后问朴世超组 ...
- java字符串转换成字节数组_将Java字符串转换为字节数组
我有一个要加密的字节数组,然后转换为字符串,以便可以传输. 当我收到字符串时,我必须将字符串转换回字节数组,以便可以对其进行解密. 我检查了接收到的字符串是否与发送的字符串(包括长度)匹配,但是当我使 ...
- InputStream输入流转换成字节数组 和 字节数组转换成字符串
https://blog.csdn.net/night_iv/article/details/7525760?utm_source=blogxgwz5 https://www.cnblogs.com/ ...
- (6) 查看汉字转换成字节数组后的字节值
package test;import java.io.UnsupportedEncodingException;/*** Unicode编码中,第一个汉字"一"的编码是4e00, ...
- php 转换成字节数组吗,在PHP中如何将字节数组转换成字符串?
如果按字节数组表示: $bytes = array(255, 0, 55, 42, 17, ); array_map() 那么就像: $string = implode(array_map(" ...
- android将矩阵转换成字节数组,android-使用OpenGL矩阵转换将纹理从“ 1D”映...
(针对这个问题,我正在尝试研究解决this other one的想法) 如果我在内存中有一个标准的2D数组,其尺寸为width和height,则可以将其转换为一个长度为width * height的一 ...
- JSON对象转换成Byte(字节)数组
2019独角兽企业重金招聘Python工程师标准>>> 如果你不了解JSON对象,请看这里 // JSON对象转换成 byte 数组 Byte *byteArray = (B ...
- Java对象转换成JSON对象/JSON对象转换成JSON字符串/JSON字符串转换成JS对象
文章目录 后端部分 前端部分 后端部分 Option op = new Option("海淀","hd");//java对象转换json对象 JSONObjec ...
- PowerShell 将对象转换成文本
最近遇到一些要将对象转换成文本以邮件发送的情况. Out-String Out-String cmdlet 将 Windows PowerShell 管理的对象转换成字符串数组.默认情况下,Out-S ...
最新文章
- 创建docker用户组并加入
- setdiff--求两个集合的差
- 极客时间《玩转Git三剑客》之GItHub剑客
- Bing Speech Recognition 标记
- java ee文件下载_JavaEE实现文件下载
- 深入理解SpringBoot(5)
- cassandra 数据库_使用Apache Cassandra构建分布式NoSQL数据库
- [转]easyui 全部图标
- 大数据分析技术有哪些类型
- poj 3211 Washing Clothes
- 连文件搜索都不会用,也不自己反省一下?
- tableexport 文件格式和扩展名不匹配_让信息检索更有效率!百度有哪些你不知道的隐藏玩法?...
- ANSYS 有限元分析 选择与组件
- 桃李春风一杯酒,江湖夜雨十年灯。
- 《2019-2020中国开发者调查报告》发布了!
- sam格式的结构和意义_SAMtools: SAM格式的处理利器
- 关于VMD相关介绍(二)
- php 算生存曲线,生存分析之生存曲线绘制
- 在线计算机励志文案,21句让人心动的励志文案,振奋人心,激励满满!
- java后台如何将rgb与16进制颜色进行转换
热门文章
- 角点检测汇总:Harris角点及Shi-Tomasi角点检测
- php 查看nts,查看php是ts还是nts的方法
- 日系赛璐璐鼻子上色教程,干货满满!
- yjp在jboss上的on-demand attach
- 运用spm中的coregister改变图像大小(图像重采样)
- 1990-2021年汇率年平均价数据
- 文件下载显示进度条以及调取浏览器下载进程
- c语言数组从小到大冒泡排序,C语言冒泡排序将一个数组按照从小到大进行排序...
- 一文搞懂C语言如何用指针来代替变量和数组进行数据的存储
- 搜狗开源内部项目管理平台Cynthia意欲何为