После записи и чтения строки XML в поток и из него он перестает быть десериализуемым. Новая строка обрезается.
string XmlContent = getContentFromMyDataBase();
XmlSerializer xs = new XmlSerializer(typeof(MyObj));
MemoryStream ms = new MemoryStream();
StreamWriter sw = new StreamWriter(ms);
char[] ca = XmlContent.ToCharArray(); // still working up to this point.
ms.Position = 0;
sw.Write(ca);
StreamReader sr = new StreamReader(ms);
ms.Position = 0;
string XmlContentAgain = sr.ReadToEnd();
Console.WriteLine(XmlContentAgain); // (outputstring is too short.)
MyObj theObj = (MyObj)xs.Deserialize(ms); // Can't deserialize.
Есть какие-нибудь предложения относительно того, как это исправить или в чем причина проблемы? Мое единственное предположение, что существует какая-то проблема кодирования, но я не знаю, как ее найти / исправить.
Кроме того, myObj имеет общий элемент словаря, который обычно не сериализуем, поэтому я украл код у Пола Уэлтера для его сериализации.