我目前正在使用ASP.net Web API实现Web服务,我的一个方法返回一个字符串。问题是它返回如下字符串:
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization">Some Resource</string>
这种响应是我想要的,但我不知道如何在我的Web服务客户端中对其进行反序列化。
如何对表示字符串或任何原始数据类型的任何xml进行反序列化?
谢谢!
答案 0 :(得分:2)
您可以使用System.Net.Http.Formatting.dll中的ReadAsAsync。说 'uri'会告诉我这些数据:
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
Some Resource
</string>
然后,您可以使用ReadAsAsync来获取XML中的字符串:
HttpClient client = new HttpClient();
var resp = client.GetAsync(uri).Result;
string value = resp.Content.ReadAsAsync<string>().Result;
(我正在调用.Result直接演示使用ReadAsAsync&lt;&gt;这里......)
答案 1 :(得分:0)
// Convert the raw data into a Stream
string rawData = "<string xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">Some Resource</string>";
MemoryStream stream = new MemoryStream(Encoding.ASCII.GetBytes(rawData));
// User DataContractSerializer to deserialize it
DataContractSerializer serializer = new DataContractSerializer(typeof(string));
string data = (string)serializer.ReadObject(stream);
Console.WriteLine(data);