Protobuf deserialization not working after upgrade to .net 6
Hello,
I am trying to deserialize a buffer (byte array) into a model. I upgraded my solution from core 3.1 to 6 and it no longer works. I am receiving the error
My code is :
Thanks for any help in advance.
I am trying to deserialize a buffer (byte array) into a model. I upgraded my solution from core 3.1 to 6 and it no longer works. I am receiving the error
Error: ProtoBuf.ProtoException: Invalid wire-type (Varint); this usually means you have over-written a file without truncating or setting the length; see https://stackoverflow.com/q/2152978/23354Error: ProtoBuf.ProtoException: Invalid wire-type (Varint); this usually means you have over-written a file without truncating or setting the length; see https://stackoverflow.com/q/2152978/23354My code is :
public WeldSeamImageRun ConvertBuffer(byte[] buffer)
{
return DecodeProtoBuf<WeldSeamImageRun>(buffer);
}
private T DecodeProtoBuf<T>(byte[] buffer)
{
var trimmedBuffer = TrimEnd(buffer);
var stream = new MemoryStream(trimmedBuffer);
stream.Position = 0;
stream.SetLength(trimmedBuffer.Length);
var telegram = Serializer.DeserializeWithLengthPrefix<T>(stream, PrefixStyle.Base128, 1);
return telegram;
}
[ProtoContract]
public class WeldSeamImageRun
{
[ProtoMember(1)] public List<WeldSeamImage> Images { get; set; }
[ProtoMember(2)] public string EntryCoil { get; set; }
[ProtoMember(3)] public List<EntryCoilSection> Sections { get; set; }
} public WeldSeamImageRun ConvertBuffer(byte[] buffer)
{
return DecodeProtoBuf<WeldSeamImageRun>(buffer);
}
private T DecodeProtoBuf<T>(byte[] buffer)
{
var trimmedBuffer = TrimEnd(buffer);
var stream = new MemoryStream(trimmedBuffer);
stream.Position = 0;
stream.SetLength(trimmedBuffer.Length);
var telegram = Serializer.DeserializeWithLengthPrefix<T>(stream, PrefixStyle.Base128, 1);
return telegram;
}
[ProtoContract]
public class WeldSeamImageRun
{
[ProtoMember(1)] public List<WeldSeamImage> Images { get; set; }
[ProtoMember(2)] public string EntryCoil { get; set; }
[ProtoMember(3)] public List<EntryCoilSection> Sections { get; set; }
}Thanks for any help in advance.