Загрузка вывода XmlSerializer в XmlDictionaryReader - PullRequest
0 голосов
/ 29 октября 2011

Я сталкиваюсь с этой проблемой

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-файлы.

Ответы [ 2 ]

5 голосов
/ 29 октября 2011

Вы можете сделать это с таким потоком памяти:

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());
}

Это должно работать.

1 голос
/ 29 октября 2011

Сериализация в поток памяти вместо файлового потока.

...