我目前正在使用 ASP.net Web API 实现 Web 服务,并且我的一个方法返回一个字符串。问题是它返回这样的字符串:
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization">Some Resource</string>
这种响应是我想要的,但我不知道如何在我的 Web 服务客户端中反序列化它。
您将如何反序列化表示字符串或任何原始数据类型的任何 xml?
谢谢!
我目前正在使用 ASP.net Web API 实现 Web 服务,并且我的一个方法返回一个字符串。问题是它返回这样的字符串:
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization">Some Resource</string>
这种响应是我想要的,但我不知道如何在我的 Web 服务客户端中反序列化它。
您将如何反序列化表示字符串或任何原始数据类型的任何 xml?
谢谢!
您可以使用 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<> 的使用...)
// 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);