C产品在市场上有哪些独特优势?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4528个文字,预计阅读时间需要19分钟。
序、前言 emmmmm,首先,这篇文章讲述的并不是使用BinaryFormatter进行结构体的二进制转换。实际上,BinaryFormatter这个类的实现作用并不特别大,因为它的二进制序列化结果只是简单地序列化了对象,并没有进行特殊的优化。
序、前言
emmmmm,首先这篇文章讲的不是用BinaryFormatter来进行结构体的二进制转换,说真的BinaryFormatter这个类其实现在的作用并不是特别大了,因为BinaryFormatter二进制序列化出来的结果只能用于.net平台,现在可能就用于如存入Redis这种情况下会在使用。
去年年尾的样子,我阅读学习某C++开发的程序源码时,发现作者用了一个很骚的操作直接将byte[]数组转为了结构体对象:
上面的data变量是一个指向unsigned char类型的指针,就只要一个简单的类型转换就可以将一堆unsigned char转换成想要的结构体,这着实有点让笔者有点羡慕。
后来,笔者想用C#开发一个流量分析程序,由于需要对IP报文进行仔细的特征提取,所以不能直接使用第三方数据包解析库(如:PacketDotNet)直接解析,会丢失部分特征,然而使用BinaryReader进行报文头解析的话,整个解析代码会写的丧心病狂的恶(e)心(xin),正在苦恼的时候,突然想起上面提到的那个骚操作时,笔者突然冒出了一个想法,C#里也支持结构体,那我能不能也像C++这样直接从字节序列中读取出结构体呢?
注:本文所有代码在.net Standard 2.0上测试通过。
本文共计4528个文字,预计阅读时间需要19分钟。
序、前言 emmmmm,首先,这篇文章讲述的并不是使用BinaryFormatter进行结构体的二进制转换。实际上,BinaryFormatter这个类的实现作用并不特别大,因为它的二进制序列化结果只是简单地序列化了对象,并没有进行特殊的优化。
序、前言
emmmmm,首先这篇文章讲的不是用BinaryFormatter来进行结构体的二进制转换,说真的BinaryFormatter这个类其实现在的作用并不是特别大了,因为BinaryFormatter二进制序列化出来的结果只能用于.net平台,现在可能就用于如存入Redis这种情况下会在使用。
去年年尾的样子,我阅读学习某C++开发的程序源码时,发现作者用了一个很骚的操作直接将byte[]数组转为了结构体对象:
上面的data变量是一个指向unsigned char类型的指针,就只要一个简单的类型转换就可以将一堆unsigned char转换成想要的结构体,这着实有点让笔者有点羡慕。
后来,笔者想用C#开发一个流量分析程序,由于需要对IP报文进行仔细的特征提取,所以不能直接使用第三方数据包解析库(如:PacketDotNet)直接解析,会丢失部分特征,然而使用BinaryReader进行报文头解析的话,整个解析代码会写的丧心病狂的恶(e)心(xin),正在苦恼的时候,突然想起上面提到的那个骚操作时,笔者突然冒出了一个想法,C#里也支持结构体,那我能不能也像C++这样直接从字节序列中读取出结构体呢?
注:本文所有代码在.net Standard 2.0上测试通过。

