我正在通过OAuth从Twitter提取XML。我正在向http://twitter.com/account/verify_credentials.xml发送请求,该请求返回以下XML:<?xml version="1.0" encoding="UTF-8"?><user> <id>16434938</id> <name>Lloyd Sparkes</name> <screen_name>lloydsparkes</screen_name> <location>Hockley, Essex, UK</location> <description>Student</description> <profile_image_url>http://a3.twimg.com/profile_images/351849613/twitterProfilePhoto_normal.jpg</profile_image_url> <url>http://www.lloydsparkes.co.uk</url> <protected>false</protected> <followers_count>115</followers_count> <profile_background_color>9fdaf4</profile_background_color> <profile_text_color>000000</profile_text_color> <profile_link_color>220f7b</profile_link_color> <profile_sidebar_fill_color>FFF7CC</profile_sidebar_fill_color> <profile_sidebar_border_color>F2E195</profile_sidebar_border_color> <friends_count>87</friends_count> <created_at>Wed Sep 24 14:26:09 +0000 2008</created_at> <favourites_count>0</favourites_count> <utc_offset>0</utc_offset> <time_zone>London</time_zone> <profile_background_image_url>http://s.twimg.com/a/1255366924/images/themes/theme12/bg.gif</profile_background_image_url> <profile_background_tile>false</profile_background_tile>我正在使用以下代码反序列化: public User VerifyCredentials() { string url = "http://twitter.com/account/verify_credentials.xml"; string xml = _oauth.oAuthWebRequestAsString(oAuthTwitter.Method.GET, url, null); XmlSerializer xs = new XmlSerializer(typeof(User),""); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(xml)); return (User)xs.Deserialize(ms); }但是,当反序列化以上XML时,应用程序将引发以下情况:$ exception {“ XML文档(2,2)中存在错误。”} System.Exception {System.InvalidOperationException}InnerException {“ <用户xmlns =”>不是预期的。“} System.Exception {System.InvalidOperationException}现在,我进行了搜索,找到的最佳解决方案是在序列化内容时向序列化器添加空白名称空间,但是我没有序列化它,所以我不能。我也有一些用于接收状态的代码,效果很好。那么有人可以向我解释为什么会发生错误吗?以及可能的解决方案?提前致谢。
4 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
甚至更容易的是将以下注释添加到类的顶部:
[Serializable, XmlRoot("user")]
public partial class User
{
}
12345678_0001
TA贡献1802条经验 获得超5个赞
XmlSerializer xs = new XmlSerializer(typeof(User), new XmlRootAttribute("yourRootName"));
aluckdog
TA贡献1847条经验 获得超7个赞
错误消息非常模糊,对我来说,我有以下代码:
var streamReader = new StreamReader(response.GetResponseStream());
var xmlSerializer = new XmlSerializer(typeof(aResponse));
theResponse = (bResponse) xmlSerializer.Deserialize(streamReader);
注意,xmlSerializer是使用aResponse实例化的,但是在反序列化时,我不小心将其强制转换为bResonse。
- 4 回答
- 0 关注
- 333 浏览
添加回答
举报
0/150
提交
取消