<分区>
我正在看 XML Serialization 并且已经这样序列化了:
public static string Serialize<T>(T data)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
//Overridden to use UTF8 for compatability with Perl XML::DOM
StringWriterUTF8 sw = new StringWriterUTF8();
xmlSerializer.Serialize(sw, data);
return sw.ToString();
}
我这样使用它:
string serializedData = Serializer.Serialize<List<InputData>>(rawDataCollection);
产生:
<ArrayOfInputData xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<InputData>
<dose>100mg/kg</dose>
<compound>AZ13279746-001</compound>
</InputData>
</ArrayOfInputData>
出于某种原因,我无法包含 xml 版本 1.0 编码 UTF8 的 header 。
现在,当我尝试反序列化时
public static object DeSerialize<T>(string data)
{
StringReader rdr = new StringReader(data);
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
T i;
i = (T)xmlSerializer.Deserialize(rdr);
return i;
}
我收到一条错误消息,指出 2,2 处的无效 xml。知道我做错了什么吗?
谢谢