#c# #xml #serialization #xml-serialization #filestream
#c# #xml #сериализация #xml-сериализация #filestream
Вопрос:
Я столкнулся с этой проблемой
class person
{
;
}
person p = new person();
XmlSerializer ser = new XmlSerializer(p.GetType());
FileStream fs = File.Open("sam.xml",FileMode.OpenOrCreate, FileAccess.Write);
ser.Serialize(fs,p)
fs.flush();
fs.close();
FileStream stream = FileStream("sam.xml", FileMode.Open);
XmlDictionaryReader xdr = XmlDictionaryReader.CreateTextReader(stream,new XmlDictionaryReaderQuotas());
теперь моя проблема в том, как я могу создать объект xdr без создания XML-файлов.
Комментарии:
1. Что вы планируете делать с
XmlDictionaryReader
?
Ответ №1:
Вы можете сделать это с таким потоком памяти:
class person
{
;
}
person p = new person();
using (MemoryStream ms = new MemoryStream())
{
XmlSerializer ser = new XmlSerializer(p.GetType());
ser.Serialize(ms,p)
ms.Seek(0, SeekOrigin.Begin);
XmlDictionaryReader xdr = XmlDictionaryReader.CreateTextReader(ms,new XmlDictionaryReaderQuotas());
}
Это должно сработать.
Ответ №2:
Сериализуйте в memorystream вместо filestream.
Комментарии:
1. Я получаю System.Xml.XmlException: неожиданный конец файла. ошибка в XmlDictionaryReader. CreateTextReader(ms, new XmlDictionaryReaderQuotas) .
2. Вам нужно будет искать поток обратно к началу.