似乎无法在c#中使用XmlSerializer反序列化非常简单的xml
发布时间:2020-12-16 01:54:49 所属栏目:百科 来源:网络整理
导读:我觉得我要成功了.我已经写了一百个反序列化程序,但这个正在杀了我! 以下是我从服务中返回的内容.一个非常简单的字符串数组……我想. ArrayOfstring xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:i="http://www.w3.org/2001/X
我觉得我要成功了.我已经写了一百个反序列化程序,但这个正在杀了我!
以下是我从服务中返回的内容.一个非常简单的字符串数组……我想. <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); 但我在Deserialize行上收到以下错误: <ArrayOfstring xmlns='http://schemas.microsoft.com/2003/10/Serialization/Arrays'> was not expected 我试图包括命名空间并创建各种异国情调的对象,以试图让它工作.疯狂的时间.最后我用JSON请求它,并用Json.net反序列化. 但是我很好奇我做错了什么! 解决方法
XML Serializer无法在没有附加规范的情况下反序列化简单类型或简单类型列表,但DataContractReader可以:
string content = @" <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 DataContractSerializer(typeof(string[])); var reader = new XmlTextReader(new StringReader(content)); var GenreList = new List<string>((string[])serializer.ReadObject(reader)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |