Laden...

Wie kann ich ein Xml mit speziellen Zeichen wie "&" deserialiseren?

Erstellt von sindibad vor 3 Jahren Letzter Beitrag vor 3 Jahren 973 Views
S
sindibad Themenstarter:in
110 Beiträge seit 2012
vor 3 Jahren
Wie kann ich ein Xml mit speziellen Zeichen wie "&" deserialiseren?

Hallo. Ich möchte ein xml file in ein Object deserialisieren mit dieser Funktion:


public static T Read(string fileName)
        {
            T ret = null;

            try
            {


                using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read))
                {
                    using (XmlReader xr = XmlReader.Create(fs, new XmlReaderSettings() { DtdProcessing = DtdProcessing.Prohibit }))
                    {
                        XmlSerializer serializer = new XmlSerializer(typeof(T));
                        ret = (T)serializer.Deserialize(xr);
                    }
                }
            }
            catch(Exception e)
            {
                throw;
            }

            return ret;
        }

.

wenn ein & Zeichen im xml in der Daten steht, kommt zu einer InvalidOperationException bei den & Operator. wie kann man das umgehen und Spezielle Zeichens bei der Serialisierung unterstützen?

T
2.224 Beiträge seit 2008
vor 3 Jahren

Anbei ist das try/catch in der Form Käase.
Wenn du die Exception nicht behandelst, brauchst du Sie dort auch nicht zu fangen.
Und ein try/catch nur mit throw macht 0 Sinn an der Stelle.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

S
sindibad Themenstarter:in
110 Beiträge seit 2012
vor 3 Jahren

Ich habe die try und catch nur während des Tests eingefügt um die Exception zu sehen, wenn was schief geht. Ich teste die Funktion in ein Unit Test, oder kann man sie im Test sehen?

T
2.224 Beiträge seit 2008
vor 3 Jahren

Selbst bei Mircosofts UnitTests in C# kannst du die Exception sehen.
Der Test lässt sich dann auch debuggen und damit auch Fehler direkt im Code prüfen.
Wenn der Test scheitert, zeigt dir der Test Explorer auch direkt in VS an wo und mit welcher Meldung es eine Exception gibt.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.