2010-11-12 5 views
3

En général, voici comment je deserialize un fichier XML:désérialisation XML à partir du Web

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

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

Cela fonctionne quand je desrializing un fichier XML, mais si je veux désérialiser un fichier XML qui est retourné par une requête web (c'est-à-dire aller à une URL)?

Répondre

8

Eh bien, il y a quelques options:

  • Créer un XmlReader avec XmlReader.Create(uri) et deserialize directement
  • Obtenez le flux de la WebClient ou HttpWebRequest et deserialize du flux
  • Fetch toutes les données , puis créez un flux autour de celui-ci en utilisant MemoryStream et désérialisez-le

Si Vous n'avez pas besoin de faire quoi que ce soit de spécial avec la requête web, c'est-à-dire que c'est juste un "GET" d'un URI - alors la première option est probablement la plus simple.

0

Si la réponse est enregistrée en mémoire, vous pouvez utiliser un MemoryStream, un StringReader ou une classe qui correspond au format des données et aux capacités de XmlSerializer.Deserialize() method.