在F#中通过网络序列化数据类型

时间:2010-06-27 02:06:19

标签: serialization f#

我想通过网络发送一个Uint16。我已经看过可用的不同.N​​ET序列化器了。根据此F# Serialize Discriminated Union why so many bytes?,使用BinaryFormatter将生成代表该类型的元数据的开销字节。结果是UInt16一旦通过该格式化器,就不能表示为16位。我需要一种方法来转换UInt16,这样我就可以从它获得16位,我可以发送到套接字另一端的程序。

2 个答案:

答案 0 :(得分:3)

我认为您可以使用System.BitConverter类:

static member GetBytes : 
        value:uint16 -> byte[] 

http://msdn.microsoft.com/en-us/library/8wwsdz3k.aspx

答案 1 :(得分:0)

我刚刚找到BitConverter类,它看起来像我想要的那样:

byte_array = BitConverter.GetBytes header.id

其中header.id是UInt16