Vb.net 压缩序列化的类数据

Vb.net 压缩序列化的类数据,vb.net,memorystream,lossless-compression,Vb.net,Memorystream,Lossless Compression,我有这个类来将序列化类编码和解码为字符串并返回 Imports System.IO Imports System.Runtime.Serialization.Formatters.Binary Imports System.Runtime.Serialization Imports System.Text Public Class FormData Public Function Encode(fdi As FormDataItem) As String Dim format

我有这个类来将序列化类编码和解码为字符串并返回

Imports System.IO
Imports System.Runtime.Serialization.Formatters.Binary
Imports System.Runtime.Serialization
Imports System.Text


Public Class FormData


  Public Function Encode(fdi As FormDataItem) As String
    Dim formatter As New BinaryFormatter
    Dim ms As New MemoryStream

    formatter.Serialize(ms, fdi)

    ms.Position = 0

    Dim output As New StringBuilder
    Dim waarde As String = ""

    Do While ms.Position < ms.Length
      waarde = Hex(ms.ReadByte)
      If waarde.Length = 1 Then waarde = "0" + waarde

      output.Append(waarde)

    Loop

    Return output.ToString
  End Function

  Public Function Decode(text As String) As FormDataItem
    Dim ms As New MemoryStream()
    Dim waarde As Byte
    Dim getal As String

    For ab = 0 To text.Length - 1 Step 2
      getal = text.Substring(ab, 2)
      waarde = CByte(Val("&h" + getal))

      ms.WriteByte(waarde)
    Next

    ms.Position = 0

    Dim formatter As New BinaryFormatter
    Dim fdi As New FormDataItem

    ms.Position = 0

    Try
      fdi = DirectCast(formatter.Deserialize(ms), FormDataItem)
    Catch ex As Exception
      Return Nothing
    End Try

    Return fdi
  End Function
End Class
现在我想在encode函数中压缩字符串,在decode函数中解压缩,因为这些数据用于URL

我对压缩数据的位置和方式有点困惑。 我是在序列化后立即这样做,还是只压缩字符串

感谢您的帮助

rg。
Eric

问题是如何。使用ProtoBuf Net,您就不必压缩输出了。@MrCoDeXeR我只看到压缩所有内容。。。没别的了。你把答案放在哪里了?