Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Serialisation : Directement dans une chaine

3 réponses
Avatar
Gislain
Bonsoir,

Je souhaite sérialiser un object et avoir le résultat sous format string au
lieu d'un fichier XML (ce que tous les exemples du monde démontrent...)
Comment puis-je faire ?

Merci d'avance (surtout s'il y a un exemple dans la réponse...)

Gislain

3 réponses

Avatar
Gislain
j'ai trouvé, mais ...
XmlSerializer serializer = new XmlSerializer(typeof(MonObject));
System.IO.MemoryStream writer = new System.IO.MemoryStream();
serializer.Serialize(writer, this);

XmlDocument doc = new XmlDocument();
string enChaine =
System.Text.Encoding.UTF7.GetString(writer.ToArray());

Deux questions :
. Est-ce LA solution
. Comme j'ai trouvé ça sur internet, je ne comprend rien à la solution avec
Encoding UTF7 ToArray() etc... quelqu'un peut-il me "lancer" un bout
d'explication ?

merci.

Gislain.



"Gislain" wrote in message
news:%
Bonsoir,

Je souhaite sérialiser un object et avoir le résultat sous format string
au lieu d'un fichier XML (ce que tous les exemples du monde démontrent...)
Comment puis-je faire ?

Merci d'avance (surtout s'il y a un exemple dans la réponse...)

Gislain



Avatar
Alexandre Roba
Salut Ghislain,

Tu utilise System.Text.Encoding.UTF7.GetString(writer.ToArray()) parceque tu
as serialize ton object dans une zone memoire (Memory stream) en byte. Tu
dois donc Utiliser un UTF encoder pour convertir ces byte en string.

Maintenant si tu ne veux pas utiliser cette commande tu peux serializer ton
object directement dans un textwritter plutot que dans une zone memoire. Ton
textwritter peux etre construit sur un stringbuilder.

Voici le code pour faire tout ca.

MyClass myclass = new MyClass("Object a serializer");
StringBuilder strBuilder = new StringBuilder();
StringWriter writter = new StringWriter(strBuilder);
XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
serializer.Serialize(writter,myclass);
Debug.Write(strBuilder.ToString());

Voila,

a pluche

Alexandre Roba
.NET Architect


"Gislain" a écrit :

j'ai trouvé, mais ...
XmlSerializer serializer = new XmlSerializer(typeof(MonObject));
System.IO.MemoryStream writer = new System.IO.MemoryStream();
serializer.Serialize(writer, this);

XmlDocument doc = new XmlDocument();
string enChaine =
System.Text.Encoding.UTF7.GetString(writer.ToArray());

Deux questions :
.. Est-ce LA solution
.. Comme j'ai trouvé ça sur internet, je ne comprend rien à la solution avec
Encoding UTF7 ToArray() etc... quelqu'un peut-il me "lancer" un bout
d'explication ?

merci.

Gislain.



"Gislain" wrote in message
news:%
> Bonsoir,
>
> Je souhaite sérialiser un object et avoir le résultat sous format string
> au lieu d'un fichier XML (ce que tous les exemples du monde démontrent...)
> Comment puis-je faire ?
>
> Merci d'avance (surtout s'il y a un exemple dans la réponse...)
>
> Gislain
>





Avatar
Gislain
J'ai oublié de te remercier.
Cela fonctionne (comme je l'ai toujours révé...)

Sur les notions des xxxBuilder() , zzzWriter() j'aimerais mieux comprendre
la philosophie de cette architecture car à ce jour, je peche les infos sur
le net au grès de mes besoins, mais j'aimerais être autonome.
Où puis-je trouver l'article "Tout comprendre sur les xxxBuilder, zzzWriter,
yyyReader etc..."

Encore merci.

Gislain.

"Alexandre Roba" wrote in message
news:
Salut Ghislain,

Tu utilise System.Text.Encoding.UTF7.GetString(writer.ToArray()) parceque
tu
as serialize ton object dans une zone memoire (Memory stream) en byte. Tu
dois donc Utiliser un UTF encoder pour convertir ces byte en string.

Maintenant si tu ne veux pas utiliser cette commande tu peux serializer
ton
object directement dans un textwritter plutot que dans une zone memoire.
Ton
textwritter peux etre construit sur un stringbuilder.

Voici le code pour faire tout ca.

MyClass myclass = new MyClass("Object a serializer");
StringBuilder strBuilder = new StringBuilder();
StringWriter writter = new StringWriter(strBuilder);
XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
serializer.Serialize(writter,myclass);
Debug.Write(strBuilder.ToString());

Voila,

a pluche

Alexandre Roba
.NET Architect


"Gislain" a écrit :

j'ai trouvé, mais ...
XmlSerializer serializer = new
XmlSerializer(typeof(MonObject));
System.IO.MemoryStream writer = new System.IO.MemoryStream();
serializer.Serialize(writer, this);

XmlDocument doc = new XmlDocument();
string enChaine >> System.Text.Encoding.UTF7.GetString(writer.ToArray());

Deux questions :
.. Est-ce LA solution
.. Comme j'ai trouvé ça sur internet, je ne comprend rien à la solution
avec
Encoding UTF7 ToArray() etc... quelqu'un peut-il me "lancer" un bout
d'explication ?

merci.

Gislain.



"Gislain" wrote in message
news:%
> Bonsoir,
>
> Je souhaite sérialiser un object et avoir le résultat sous format
> string
> au lieu d'un fichier XML (ce que tous les exemples du monde
> démontrent...)
> Comment puis-je faire ?
>
> Merci d'avance (surtout s'il y a un exemple dans la réponse...)
>
> Gislain
>