У меня проблемы с десериализацией моего XML-файла из MemoryStream. У меня есть сгенерированный класс MyXmlFile и MemoryStream, содержащий файл XML, который я хочу десериализовать в объект типа MyXmlFile.
public static class XmlSerializeObject
{
public static T FromStream<T>(Stream s)
{
var serializer = new XmlSerializer(typeof(T));
return (T) serializer.Deserialize(s);
}
}
У меня есть MemoryStream ms, которая содержит XML-файл. Если я пытаюсь десериализовать этот поток в объект типа MyXmlFile, я получаю исключение «В XML-документе (0,0) произошла ошибка»
MyXmlFile test = XmlSerializeObject.FromStream<MyXmlFile>(ms);
Однако я убедился, что мой MemoryStream правильный. Если я сначала записываю свой поток в файл на моем диске, а затем снова читаю этот файл, он работает нормально.
FileStream outStream = File.OpenWrite("D:\\p.xml");
outStream.Write(((MemoryStream)ms).ToArray(), 0, ((MemoryStream)ms).ToArray().Length);
outStream.Flush();
outStream.Close();
MyXmlFile test= XmlSerializeObject.FromStream<MyXmlFile>(File.OpenRead("D:\\p.xml"));
Мне не удалось найти решение, поэтому я решил опубликовать свой вопрос. Может быть, у кого-то раньше была такая же проблема, и она может мне помочь.
Спасибо заранее. Если что-то неясно, пожалуйста, спросите.