Ich lese diese file und verwende die System.Xml.Serialization.XmlSerializer zum Serialisieren und Deserialisieren. Leider kann ich den Inhalt der Datei in dieser Frage nicht posten, da StackOverflow sie falsch codiert.Serialisierung und Deserialisierung von Strings mit Hexadezimalzeichen
Die Deserialize-Funktion löst eine Ausnahme aus.
'', Hexadezimalwert 0x03, ist ein ungültiges Zeichen. Linie 5, Position 20.
Was mache ich falsch?
Hier ist mein Code. Auch erhältlich here
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Xml.Serialization;
namespace XMLTester
{
public class HexTester
{
public static void Main(string[] args)
{
var lines = File.ReadAllLines(@"..\..\HexText.txt"); ;
var foo = new Foo()
{
Items = new List<FooBar>()
{
new FooBar()
{
Text = lines[0]
}
}
};
string xml = SerializeToXML(foo);
var objTabs = DeserializeFromXML(xml, typeof(Foo)); //This throws an error
}
static string SerializeToXML(object obj)
{
StringBuilder xml = new StringBuilder();
XmlSerializer serializer = new XmlSerializer(obj.GetType());
TextWriter textWriter = new StringWriter(xml);
serializer.Serialize(textWriter, obj);
textWriter.Close();
return xml.ToString();
}
static object DeserializeFromXML(string xml, Type toType)
{
XmlSerializer deserializer = new XmlSerializer(toType);
TextReader textReader = new StringReader(xml);
Object obj = deserializer.Deserialize(textReader); //This throws an error
textReader.Close();
return obj;
}
}
public class Foo
{
public List<FooBar> Items { get; set; }
}
public class FooBar
{
public string Text { get; set; }
}
}
Was ist der Zweck der Serialisierung einer Textdatei? –
Ich bekomme nur Objekt Foo an meine Funktion übergeben. Ich gab das Beispiel, um aus der Datei zu lesen, da StackOverflow es mir nicht erlaubte, die Zeichen direkt zu posten. –
Ich habe Ihren Code getestet. Ich denke, das Problem liegt in der ** Datei **. Wenn Sie die Datei direkt herunterladen, sehen Sie unsichtbare Zeichen. wenn ich den Inhalt von Google Drive kopiere, dann hat das Programm keine Ausnahmen. –