Bonjour,
Voila, je souhaite avoir un flux XML dans une string pour faire une requete sur un serveur.
Pour cela j'utilise la sérialisation dot net.
Par contre quand on utilise cette méthode, on est obligé d'utiliser un StreamWriter qui me fabrique un fichier xml...
Voici mon probléme (qui n'est en soit pas bloquant) : Sachant que je veux simplement une string et non un fichier, ya t il d'autre méthodes que l'XmlSerializer pour faire un flux car je ne voudrais éviter l'entrée sortie (lecture/Ecriture dans un fichier).
Si aucune autre méthode n'existe, pensez vous que ce problème est important et que ca affaiblira les performances de l'application (au moins 500 fichiers jours), le fichier est écrit avec le meme nom à chaque fois.
Merci pour votre aide.
Stream est une classe abstraite qui represente un flux, flux internet, flux sur un fichier, flux dans la mémoire, flux dans un pipe en mémoire, flux via un pigeon voyageur, bref tu peux créer ton propre flux et il n'y a aucun lien avec un fichier !
Si la solution que je te propose plus haut avec le StringWriter ne te convient pas tu peux utiliser le memorystream. Ca doit donner un truc dans le genre :
using(MemoryStream ms = new MemoryStream())
using(StreamReader sr = new StreamReader(ms))
{
serializer.Serialize(ms, o);
String result = sr.ReadToEnd();
}
Réf MSDN :
Pour ce faire, vous devez déterminer le format de transport dans lequel le flux XML doit être stocké sous forme de flux ou sous forme de fichier.
Oui mais comment faire la différence...
Encore les bons conseils de Cyril. Merci m'sieur !
Il semble tout de meme que les streams soit stockés sous forme de fichier car quand tu veux avoir une variable stream, tu est obligé de la créer ainsi :
Dim
myFileStream
As FileStream =
New FileStream(
"myStreamRep.xml", FileMode.Open)
Alors je pense surment que tu fais allusion au type stream mais dans le cas de la sérialisation de class, je ne sais pas comment m'en servir :
Dim
myStream As Stream = Nothing
mySerializer.Serialize(myStream, myStructure)
renvoi une erreur de type "La valeur ne peut pas être null." car je pense que je n'arrive pas à initialiser ma variable correctement :
Est il possible d'utiliser ce type dans ce cas ?