从Web反序列化XML

xbo*_*nez 3 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);
                }
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*eet 8

嗯,有几个选择:

  • 直接创建XmlReaderwith XmlReader.Create(uri)和反序列化
  • WebClient或获取流HttpWebRequest,并从流中反序列化
  • 获取所有数据,然后使用它MemoryStream并在其中反序列化来构建它周围的流

如果您不需要对Web请求做任何特殊操作 - 也就是说它实际上只是来自URI的"GET" - 那么第一个选项可能是最简单的.