0

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

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

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

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

谢谢!

4

2 回答 2

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<> 的使用...)

于 2012-10-17T17:23:12.807 回答
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);
于 2012-10-17T15:39:29.623 回答