【发布时间】:2011-10-22 13:31:52
【问题描述】:
是否可以序列化由二进制编写器使用 Protobuf.net 创建的内存流元组?如果我尝试这样做,Protobuf 会说它无法序列化流。
我所追求的是序列化一个锯齿状数组的元组。我不想将它们转换为一维数组,因为我认为没有必要。所以我想我会自己将锯齿状数组序列化到内存流中,但我希望 Protobuf.net 为我序列化元组。我需要尽快进行整体序列化/反序列化。
编辑:
我的总体目标是无论如何都尽可能快地通过 WCF 发送以下锯齿状数组元组。 from jagged array to jagged array 的总时间很重要。
// F# interactive code
#time "on"
#r @"d:\Protobuf\protobuf-net.dll"
let getJaggedArray () =
let size = 100
let rnd = System.Random 1
Array.init size (fun i ->
Array.init size (fun j ->
Array.init size (fun k ->
rnd.NextDouble() )))
let wcfData = (getJaggedArray (), getJaggedArray ()), getJaggedArray ()
let file = new System.IO.FileStream ("test.bin", System.IO.FileMode.Create)
ProtoBuf.Serializer.Serialize (file, wcfData)
file.Close()
// === Future use ===
//[<ServiceContract>]
//type IWCF =
//
// [<OperationContract>]
// [<ProtoBehavior>]
// abstract Send: wcfData -> unit
【问题讨论】:
标签: c# wcf serialization f# protobuf-net