将XmlSerializer的输出加载到XmlDictionaryReader中

时间:2011-10-29 05:50:29

标签: 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());

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

2 个答案:

答案 0 :(得分: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());
}

这应该有效。

答案 1 :(得分:1)

序列化为内存流而不是文件流。