【发布时间】:2018-08-26 17:14:48
【问题描述】:
我已使用XMLSerializer 将PrinterSettings 序列化为字符串。
现在,当我尝试将字符串反序列化为 PrinterSettings 时,我得到了一个
System.InvalidOperationException:XML 文档 (10,4) 中的错误。该值不能为 NULL。
我对比了序列化和反序列化的字符串,它们完全一样,所以我尝试反序列化的方式一定有问题。
有人看到我的错误吗?
Dim nPrint As New PrinterSettings
Dim sTest As String = String.Empty
Dim nXSer1 As New XmlSerializer(GetType(PrinterSettings))
Using sw As New StringWriter
nXSer1.Serialize(sw, nPrint)
sTest = sw.ToString()
End Using
'just a test to see if it would work
Dim nXSer2 As New XmlSerializer(GetType(PrinterSettings))
Using sr As TextReader = New StringReader(sTest)
Try
nPrint = nXSer2.Deserialize(sr) 'raises error Error in XML-Document (10,4). The value may not be NULL.
Catch ex As Exception
Debug.Assert(False)
End Try
End Using
【问题讨论】:
-
10,4 表示它在 xml 文件的第 10 行字符 4 上。您是否对已序列化的文件进行反序列化?我唯一一次看到反序列化来自序列化的 xml 的问题是命名空间不匹配。
-
@jdweng 我已经编辑了我的帖子并插入了字符串(序列化和反序列化都相同)。
标签: xml vb.net serialization