【问题标题】:Loading the Output of XmlSerializer into an XmlDictionaryReader将 XmlSerializer 的输出加载到 XmlDictionaryReader
【发布时间】:2011-10-29 05:50:29
【问题描述】:

我遇到了这个问题

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 对象。

【问题讨论】:

  • 你打算用XmlDictionaryReader做什么?

标签: c# xml serialization xml-serialization filestream


【解决方案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】:

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

    【讨论】:

    • 我收到 System.Xml.XmlException: Unexpected end of file。 XmlDictionaryReader.CreateTextReader(ms, new XmlDictionaryReaderQuotas) 出现错误。\
    • 您需要将流重新搜索到开头。
    猜你喜欢
    • 1970-01-01
    • 2017-07-09
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多