2
我有一些问题反序列化HttpResponseMessage到一个对象。 问题是,当对象应该反序列化时,所有字段为空,不会引发异常。C#反序列化HttpResponseMessage对象
HttpContent content = new StringContent(xml);
content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("text/xml");
HttpResponseMessage response = await client.PostAsync("URL", content).ConfigureAwait(false);
// Parse response
if (response.IsSuccessStatusCode)
{
XmlSerializer serializer = new XmlSerializer(typeof(ResponseObject));
Stream responseStream = await response.Content.ReadAsStreamAsync();
ResponseObject responseObject = serializer.Deserialize(responseStream) as ResponseObject;
//Possible example of wrong data
Console.WriteLine(responseObject.Message);
}
[XmlRoot("response")]
public class ResponseObject
{
[XmlElement("session")]
public string Session { get; set; }
[XmlElement("status")]
public string Status { get; set; }
[XmlElement("message")]
public string Message { get; set; }
}
响应消息作为字符串
"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>
<response>
<val n=\"session\">SESSION ID</val>
<val n=\"status\">201</val>
<val n=\"message\">Created</val>
</response>"
我错过了什么?我很新的序列化/反序列化。 感谢指点。
会话,状态和消息是标签'val'的属性'n'的值。 – Eser
ResponseObject是否不需要某些val元素集合以匹配XML? – Biscuits
我是多么愚蠢......这就是我试图重新使用旧项目中的代码所得到的结果。周一,当我回到工作岗位时,我会继续努力。 – Mattias