反序列化字符串和基本类型的xml表示 - ASP.NET Web API

时间:2012-10-17 15:22:38

标签: c# xml serialization xml-serialization asp.net-web-api

我目前正在使用ASP.net Web API实现Web服务,我的一个方法返回一个字符串。问题是它返回如下字符串:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization">Some Resource</string>

这种响应是我想要的,但我不知道如何在我的Web服务客户端中对其进行反序列化。

如何对表示字符串或任何原始数据类型的任何xml进行反序列化?

谢谢!

2 个答案:

答案 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);