我已經搜查了很多,無法找到一個解決方案,並不能確定正確的方法XML反序列化編碼問題
我序列化對象到XML字符串,並使用C#反序列化回的對象。序列化後的XML字符串添加了領先的?當我dezerialize回我正在一個錯誤的對象有XML文檔中的錯誤(1,1)
?<?xml version="1.0" encoding="utf-16"?>
序列化代碼:
string xmlString = null;
MemoryStream memoryStream = new MemoryStream();
XmlSerializer xs = new XmlSerializer(typeof(T));
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("abc", "http://example.com/abc/");
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream,Encoding.Unicode);
xs.Serialize(xmlTextWriter, obj, ns);
memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
xmlString = ConvertByteArrayToString(memoryStream.ToArray());
ConvertByteArrayToString:
UnicodeEncoding encoding = new UnicodeEncoding();
string constructedString = encoding.GetString(characters);
反序列化代碼:
XmlSerializer ser = new XmlSerializer(typeof(T));
StringReader stringReader = new StringReader(xml);
XmlTextReader xmlReader = new XmlTextReader(stringReader);
object obj = ser.Deserialize(xmlReader);
xmlReader.Close();
stringReader.Close();
return (T)obj;
我想知道我在做什麼編碼錯誤,我需要一個適用於大多數情況的解決方案。由於