Autor Beitrag
mannyk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 83
Erhaltene Danke: 1



BeitragVerfasst: So 07.08.11 11:27 
Hi Leute,

ich habe das Problem, dass die Properties eines Objektes, welches ich serialisieren/deserialisieren will, strings enthalten kann, welche Sonderzeichen enthalten (z.B. \t, \n für Pfadangaben). Wenn ich diese Objekte nun serialisiere, so werden die Sonderzeichen in der XML-Datei interpretiert, was ich natürlich nicht will.

Nun meine Frage: Wie umgehe ich diese Interpretation am Einfachsten?

Anbei ein Code-Ausschnitt, den ich verwende:
ausblenden C#-Quelltext
1:
2:
XmlTextWriter writer = new XmlTextWriter(new FileStream("file.xml", FileMode.Create), Encoding.UTF8);
m_serializer.Serialize(writer, fileLibrary);


Danke und Grüße,
mannyk
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 07.08.11 12:47 
Hallo mannyk,

was genau meinst du mit
mannyk hat folgendes geschrieben:
Wenn ich diese Objekte nun serialisiere, so werden die Sonderzeichen in der XML-Datei interpretiert, was ich natürlich nicht will.
? Könntest du ein Beispiel der XML-Datei posten?

Und was passiert, wenn du diese wieder deserialisierst?
mannyk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 83
Erhaltene Danke: 1



BeitragVerfasst: So 07.08.11 13:13 
Hallo,

ich habe z.b. ein Property, in welchem ein Dateipfad gespeichert wird.
ausblenden C#-Quelltext
1:
Path = @"C:\test.mp3";					


Wird dies nun serialisiert, so steht dann in der xml datei:
ausblenden XML-Daten
1:
2:
3:
4:
<Track>
    <Uid>dc2c3422-574d-4355-a12b-5b50326c740b</Uid>
    <Path>C:   est.mp3</Path>
</Track>

Das Sonderzeichen "\t" wird also als Tabulator interpretiert.

Ich habe den Mechanismus nun in ein anderes Projekt eingebettet und komischerweise funktioniert es jetzt ohne Probleme - es wird also nicht interpretiert. Ich habe allerdings keine Ahnung, warum das jetzt nicht mehr passiert.
Lg,
mannyk
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: So 07.08.11 17:37 
Das kann eigentlich nur dadurch passiert sein, dass du vor einem String-Literal das @ vergessen hast.

_________________
>λ=