Deserialization error in XML document(1,1)

2020-02-10 04:19发布

问题:

I have an XML file that I deserialize, the funny part is the XML file is the was serialized using the following code:

enter code here
var serializer = new XmlSerializer(typeof(CommonMessage));
var writer = new StreamWriter("OutPut.txt");
serializer.Serialize(writer, commonMessage);
writer.Close();

And i m trying to deserialized it again to check if the output match the input. anyhow here is my code to deserialize:

var serializer = new XmlSerializer(typeof(CommonMessage));
var reader = new StringReader(InputFileName);
CommonMessage commonMessage = (CommonMessage)serializer.Deserialize(reader);

回答1:

Replace StringReader with StreamReader and it will work fine. StringReader reads value from the string (which is file name in your case).



回答2:

I just had the same error message but different error source. In case someone has the same problem like me. I chopped off the very first char of my xml string by splitting strings. And the xml string got corrupted:

"?xml version="1.0" encoding="utf-16"?> ..." // my error
"<?xml version="1.0" encoding="utf-16"?> ..." // correct

(1,1) means basically first char of the first line is incorrect and the string can't be deserialized.



回答3:

include in your CommonMessage class the XmlRoot element tag with your xmlroot eg:[XmlRoot("UIIVerificationResponse")]