我感觉自己快要疯了。我已经写了一百个反序列化程序,但这一个正在折磨我!
以下是我从服务中获取的返回结果。一个非常简单的字符串数组……我想。
<ArrayOfstring xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<string>Action & Adventure</string>
<string>Comedy</string>
<string>Drama</string>
<string>Family</string>
<string>Horror</string>
<string>Independent & World</string>
<string>Romance</string>
<string>Sci-Fi/Fantasy</string>
<string>Thriller & Crime</string>
</ArrayOfstring>
我正在使用开箱即用的反序列化功能。
var serializer = new XmlSerializer(typeof(List<string>));
var reader = new StringReader(xmlString);
var GenreList = (List<string>)serializer.Deserialize(reader);
但是在反序列化行上我遇到了以下错误:
<ArrayOfstring xmlns='http://schemas.microsoft.com/2003/10/Serialization/Arrays'> was not expected
我曾尝试包含命名空间并创建各种奇异的对象,以使其正常工作。浪费了大量时间。最终我请求返回JSON格式的数据,并使用Json.net将其反序列化。
不过,我很好奇我之前做错了什么!
XML序列化程序无法反序列化简单类型或简单类型列表
我不会这么肯定地说。(顺便说一句:我的反对票只是针对未来读者的错误陈述,如果您删除它并仅解释DataContractReader,我将撤销我的反对票) - I4V