“Invalid field in source data: 0” error with ProtoBuf-Net and Compact Framework

后端 未结 2 1229
旧时难觅i
旧时难觅i 2021-02-20 08:24

Is anyone aware of any issues when using ProtoBuf-Net to serialize/deserialize between compact framework and the full .Net framework? I have a class called LogData that I am se

2条回答
  •  情歌与酒
    2021-02-20 09:09

    I realize the main developer @MarcGravell already answered but I just wanted to share my own $0.02 that helped me on this issue. If I have a fixed size byte[] and get a count of bytes read in return, I can just specify that in the MemoryStream declaration and it solves the issue. Also, as it applies to the OP, don't declare the MemoryStream until you're done reading.

    byte[] msg = new byte[4096];
    int bytesRead = someStreamClass.Read(msg, 0, 4096);
    using (MemoryStream ms = new MemoryStream(msg, 0, bytesRead))
    {    
        logData = Serializer.Deserialize(ms);
    }
    

    @MarcGravell: Thanks for this great library!

提交回复
热议问题