在反序列化 Xml 字符串爲 Xml 對象時,拋出以下異常。
ui
即在 XML文檔(0, 0)中有一個錯誤:缺乏根元素。spa
首先看下代碼:code
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);
這裏出現的。xml
問題在於writer.Write(sb.ToString().Trim());
這裏,緣由是進行了寫入操做,最後流的位置停留在尾部。所以,在反序列化以前將流的位置定位到開始 0 的位置便可。對象
這裏就是在 上面註釋的地方。blog