2010-10-19 122 views
0

數字假面模板讀二進制數據從數據庫中,我需要將其轉換回數字人的指紋模板。我不熟悉序列化和反序列化,所以我可以使用一些幫助。這是我嘗試的:反序列化VB.net

Dim rsBioData As SqlDataReader = SQL.ExecuteReader 
Dim byteTemplate As Byte 
Dim memStreamTemplate As MemoryStream 
If rsBioData.HasRows Then 
    While rsBioData.Read 
     byteTemplate = rsBioData("BiometricData") 
     memStreamTemplate = New MemoryStream(byteTemplate) 
     Me.Template = DirectCast(template.DeSerialize(memStreamTemplate), DPFP.Template) 
    End While 
End If 
rsBioData.Close() 

我收到一個錯誤,template.DeSerialize(memStreamTemplate)不會創建一個值。

踢,這裏就是我的連載將其放置到數據庫中的對象。我認爲這部分工作正常,因爲二進制數據顯示在SQL服務器中 - 只是無法讀取它看到。

Dim str As New MemoryStream 
Enroller.Template.Serialize(str) 
Dim serializedTemplate As Byte() = str.ToArray() 
SQL.Parameters.AddWithValue("biometricData", serializedTemplate) 

感謝

+0

提供完整的異常詳細信息。 – leppie 2010-10-19 12:40:14

+0

沒有例外。它被編譯器捕獲。 – Brad 2010-10-20 02:09:37

回答

0

以下是我終於能夠做到這一點。我第一次如此接近。

  byteTemplate = rsBioData("BiometricData") 
      memStreamTemplate = New MemoryStream(byteTemplate) 
      Me.Template.DeSerialize(memStreamTemplate)