摘要:在反序列化字符串為對(duì)象時(shí),拋出如下異常。即在文檔中有一個(gè)錯(cuò)誤缺少根元素。首先看下代碼拋出異常是在這里出現(xiàn)的。問(wèn)題在于這里,原因是進(jìn)行了寫(xiě)入操作,最后流的位置停留在尾部。因此,在反序列化之前將流的位置定位到開(kāi)始的位置即可。
Q:
在反序列化 Xml 字符串為 Xml 對(duì)象時(shí),拋出如下異常。
即在 XML文檔(0, 0)中有一個(gè)錯(cuò)誤:缺少根元素。
A:首先看下代碼:
StringBuilder sb = new StringBuilder(); using (MemoryStream stream = new MemoryStream()) { StreamWriter writer = new StreamWriter(stream); writer.Write(sb.ToString().Trim()); writer.Flush(); //stream.Position=0; // or //stream.Seek(0, SeekOrigin.Begin); StreamReader reader = new StreamReader(stream); XmlSerializer xmlSerializer = new XmlSerializer(typeof(T)); object obj = xmlSerializer.Deserialize(reader); reader.Close(); reader.Close(); writer.Close(); writer.Dispose(); }
拋出異常是在object obj = xmlSerializer.Deserialize(reader);這里出現(xiàn)的。
問(wèn)題在于writer.Write(sb.ToString().Trim());這里,原因是進(jìn)行了寫(xiě)入操作,最后流的位置停留在尾部。因此,在反序列化之前將流的位置定位到開(kāi)始 0 的位置即可。
這里就是在 上面注釋的地方。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/110357.html
摘要:是回調(diào)函數(shù),當(dāng)鏈接服務(wù)器和相應(yīng)數(shù)據(jù)傳輸完畢時(shí)觸發(fā)本函數(shù)可選。僅僅是針對(duì)的,在中,已經(jīng)沒(méi)有這個(gè)模塊了,取代它的是。由于以流式讀取文件,從而速度較快,切少占用內(nèi)存,但是操作上稍復(fù)雜,需要用戶實(shí)現(xiàn)回調(diào)函數(shù)。 編寫(xiě)模塊 模塊是程序 模塊就是一個(gè)擴(kuò)展名為.py的Python程序。 編寫(xiě)模塊 #!/usr/bin/env python # coding=utf-8 lang = python 引...
閱讀 2440·2021-11-11 16:54
閱讀 2676·2021-09-26 09:47
閱讀 4014·2021-09-08 09:36
閱讀 2761·2021-07-25 21:37
閱讀 948·2019-08-30 15:54
閱讀 2564·2019-08-30 14:22
閱讀 3275·2019-08-30 13:57
閱讀 2683·2019-08-29 17:17