将XmlSerializer的输出加载到XmlDictionaryReader中

rea*_*aln -1 c# xml serialization xml-serialization 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());
Run Code Online (Sandbox Code Playgroud)

现在我的问题是如何在不创建xml文件的情况下创建xdr对象.

Fis*_*aen 5

你可以用这样的内存流来做到这一点:

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());
}
Run Code Online (Sandbox Code Playgroud)

这应该工作.