从Web反序列化XML

时间:2010-11-12 21:56:37

标签: c# xml xml-serialization

通常,这是我反序列化XML文件的方式:

    string location = "C:\\test.xml";
    XmlObjectClass member_data = new XmlObjectClass();

                using (Stream XmlStream = new FileStream(location,FileMode.Open))
                {
                    data = (XmlObjectClass)serializer.Deserialize(XmlStream);
                }

当我正在对XML文件进行反序列化时,这是有效的,但如果我想反序列化Web请求返回的XML(即转到URL),该怎么办?

2 个答案:

答案 0 :(得分:8)

嗯,有几个选择:

  • 使用XmlReader.Create(uri)创建XmlReader并直接反序列化
  • WebClientHttpWebRequest获取流,并从流中反序列化
  • 获取所有数据,然后使用MemoryStream围绕它构建流并从中反序列化

如果您不需要对Web请求做任何特别的事情 - 也就是说它实际上只是来自URI的“GET” - 那么第一个选项可能是最简单的。

答案 1 :(得分:0)

提供响应会保存在内存中,您可以使用MemoryStreamStringReader或类似于适合数据格式和XmlSerializer.Deserialize() method功能的类。< / p>