在vb.net中进行Serialize和Base64转换,反之亦然

时间:2014-09-04 09:54:41

标签: vb.net object serialization

我有序列化和base64转换对象的函数,反之亦然。它使用Newtonsoft来序列化和反序列化对象。代码有效,但有没有办法在不使用Newtonsoft的情况下执行此操作?

 Public Shared Function SerializeAndBase64(ObjectToSerialize As Object) As ReturnObject(Of String)
    Dim rtnObj As New ReturnObject(Of String)
    Try
        Dim SerializedObjectJson As String = Newtonsoft.Json.JsonConvert.SerializeObject(ObjectToSerialize)
        Dim Base64String As String = Convert.ToBase64String(Encoding.UTF8.GetBytes(SerializedObjectJson))
        rtnObj.Item = Base64String
    Catch ex As Exception
        rtnObj.ErrorID = ErrorHandler.handleError(ex)
        rtnObj.ErrorMessage = ex.Message
        rtnObj.IsError = True
    End Try
    Return rtnObj
End Function

Public Shared Function DeserializeFromBase64(Of t)(Base64Json As String) As ReturnObject(Of t)
    Dim rtnObj As New ReturnObject(Of t)
    Try


        Dim SerializedObjectJson As String = Encoding.UTF8.GetString(Convert.FromBase64String(Base64Json))
        Dim DeserializedObject As t = Newtonsoft.Json.JsonConvert.DeserializeObject(Of t)(SerializedObjectJson)
        rtnObj.Item = DeserializedObject
    Catch ex As Exception
        rtnObj.ErrorID = ErrorHandler.handleError(ex)
        rtnObj.ErrorMessage = ex.Message
        rtnObj.IsError = True
    End Try
    Return rtnObj
End Function

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以自行序列化/反序列化。您只需要想出一种方法将所有内容保存到单个字符串中,或​​者根据需要将XML或甚至字节数组保存。你的选择。

Public Class Class1
    Public Property MyValue As String

    Public Function Serialize() As String
        Return MyValue
    End Function

    Public Sub Deserialize(ByVal value As String)
        MyValue = value
    End Sub
End Class
相关问题