2010-10-19 91 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)