我正在使用HttpClient并进行GetAsync调用。然后我通过拨打response.ErrorSuccessStatusCode()
来确保通话成功。
然后我致电response.Content.ReadAsAsync<WikiResponse>()
。调用ReadAsAsync时出现错误,因为第三方REST服务正在传回,而XML响应称为“Response”而不是“WikiResponse”。这个WikiResponse是由另一个第三方创建的。我无法创建一个名为Response的对象,因为已经有一个名为this的类与其他DTO在同一“级别”,但具有不同的类结构。
有没有办法让WikiResponse“适应”响应?对于类名,XML和Classes结构是相同的。
感谢您的快速回复!
更新
我尝试在课堂上使用[XmlRoot(ElementName = "Response")]
,但它没有用。
这是我得到的错误:
[System.Runtime.Serialization.SerializationException] = {"Error in line 1 position 103. Expecting element 'WikiResponse' from namespace 'http://schemas.datacontract.org/2004/07/Project.WikiResponses.DTO'.. Encountered 'Element' with name 'Response', namespace 'http://www.someurl.com/url'. "}
答案 0 :(得分:0)
您可以尝试ReadAsAsync的一个重载:
public static Task<T> ReadAsAsync<T>(
this HttpContent content,
IEnumerable<MediaTypeFormatter> formatters
)
并创建自己的MediaTypeFormatter。
http://msdn.microsoft.com/en-us/library/hh943959(v=vs.108).aspx