DataTable反序列化突然在vb.net中出错

时间:2014-02-24 01:42:00

标签: vb.net serialization datatable

我有一个应用程序可以将信息传递给服务器。我使用以下序列化方法创建了一个二进制可序列化的Message对象:

''' <summary>
''' this method is used for serlization
''' </summary>
Public Sub GetObjectData(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) Implements System.Runtime.Serialization.ISerializable.GetObjectData
info.AddValue("message", Message, Message.GetType)
info.AddValue("tp", OBJ.GetType.ToString, Message.GetType)
info.AddValue("object", OBJ, OBJ.GetType)
End Sub

''' <summary>
''' deserialization
''' </summary>
Public Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext)
Message = info.GetString("message")
Dim TP As String = info.GetString("tp")
OBJ = info.GetValue("object", Type.GetType(TP))
End Sub

通常我使用关于我传递的对象的名称或注释填充Message,并使用对象本身填充OBJ。代码工作到几个小时前。

我做了很多更改,包括删除一些应用程序设置,但从未修改过序列化。之后,当OBJ成员变量中包含数据表时,反序列化开始失败。

我一直在网上搜索类似的错误,但找不到任何错误。

反序列化数据表时遇到的异常是:

调用目标抛出了异常。

并且堆栈是:

  

at System.RuntimeMethodHandle._SerializationInvoke(Object target,SignatureStruct&amp; declaringTypeSig,SerializationInfo info,StreamingContext context)      at System.Reflection.RuntimeConstructorInfo.SerializationInvoke(Object target,SerializationInfo info,StreamingContext context)      在System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(Object obj,SerializationInfo info,StreamingContext context)      在System.Runtime.Serialization.ObjectManager.FixupSpecialObject(ObjectHolder holder)      在System.Runtime.Serialization.ObjectManager.DoFixups()      在System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler处理程序,__BinaryParser serParser,布尔FCHECK,布尔isCrossAppDomain,IMethodCallMessage methodCallMessage)      在System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(流serializationStream,HeaderHandler处理程序,布尔FCHECK,布尔isCrossAppDomain,IMethodCallMessage methodCallMessage)      在System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)      在E:\ my project AMS \ Modules \ Utilities \ IDMS_Message.vb:line 60

中的IDMS.IDMS_Message.DeSerializeObject(Byte [] B)

是否有控制数据表的二进制序列化的设置?错误可能与网络有关吗?如果是这样,为什么对象列表的序列化/反序列化仍然可以正常工作,但数据表serlization会出错?

为什么突然出现这个错误?

非常感谢任何建议。

谢谢

0 个答案:

没有答案