1

如何在 Windows 窗体中显示来自 REST Web 服务的字符串,我的 xml 如下所示:

<string>whatever</string>

如何在 win 表单的文本框中显示它?

如果我尝试

        string uri = string.Format("etc/{0}/{1} Sad.Text, Happy.Text");
        XDocument xDoc = XDocument.Load(uri);
        string mystring = xDoc.Element("String").Value;
        textBox1.Text = mystring;

你得到一个对象引用错误?

4

2 回答 2

1

XML 元素区分大小写。尝试,

string mystring = xDoc.Element("string").Value;

解决该问题的更好方法是不使用 XML 返回简单字符串。媒体类型text/plain就是为此而设计的。如果您使用的是Microsoft 的 ASP.NET Web API,只需返回

return new HttpResponseMessage() { 
            Content = new StringContent("etc/{0}/{1} Sad.Text, Happy.Text")
           };

在客户端(使用这个http://nuget.org/Packages/system.net.http)做,

var httpClient = new HttpClient();
textBox1.Text = httpClient.GetAsync(uri).Result.Content.ReadAsString();
于 2012-04-24T12:35:51.067 回答
-2

我会使用 XmlSerializer 从 Web 服务返回的 XML 中获取信息。我假设您的 XML 只是一个字符串。您可以为您的简单示例执行类似的操作,但这也适用于 REST Web 服务返回的更复杂的对象。

 XmlSerializer xs = new XmlSerializer ( typeof ( string ) );
 MemoryStream memoryStream = new MemoryStream(StringToUTF8ByteArray(restResult));
 XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
 string textBoxVal = xs.Deserialize(memoryStream);
于 2012-04-24T12:23:06.250 回答