我是 Windows 手机开发的新手,目前我遇到了一个问题。我正在为 Windows Phone 应用程序使用 RESTful 服务,并且我成功地收到了如下所示格式的响应
<StationsResp xmlns="http://www.wmata.com" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Stations>
<Station>
<Code>A03</Code>
<Lat>38.9095980575</Lat>
<LineCode1>RD</LineCode1>
<LineCode2 i:nil="true" />
<LineCode3 i:nil="true" />
<LineCode4 i:nil="true" />
<Lon>-77.0434143597</Lon>
<Name>Dupont Circle</Name>
<StationTogether1 />
<StationTogether2 />
</Station>
<Station>
<Code>A02</Code>
<Lat>38.9032019462</Lat>
<LineCode1>RD</LineCode1>
<LineCode2 i:nil="true" />
<LineCode3 i:nil="true" />
<LineCode4 i:nil="true" />
<Lon>-77.0397008272</Lon>
<Name>Farragut North</Name>
<StationTogether1 />
<StationTogether2 />
</Station>
</Stations>
</StationsResp>
我的 C# 代码在下面调用服务并存储此响应。
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
Uri uri = new Uri("http://api.wmata.com/Rail.svc/Stations?api_key=API_KEY_CODE_OMITTED_INTENTIONALLY");
WebClient webClient = new WebClient();
webClient.DownloadStringCompleted += OnDownloadStringCompleted;
webClient.DownloadStringAsync(uri);
}
void OnDownloadStringCompleted(object sender, DownloadStringCompletedEventArgs args)
{
XElement elm = XElement.Load(args.Result);
var SearchResults = elm.Elements("Station");
}
我的问题是最后一行。对象“榆树”具有上面发布的响应的值。但是,当我尝试使用任何方法查询对象 elm 时 [如 elm.Descendents()、elm.Elements()] 它不起作用。我的 Windows Phone 的 System.Xml.Linq 参考版本是 2.0.5.0。我还缺少其他东西吗?
以下是我收到的确切错误消息。
在监视窗口中,我看到对象 elm 中的值。但是 LINQ 查询 elm.Elements("Station") 出错了。错误消息是“System.Collections.IEnumerator.CurrentCould not evaluate expression”。
任何帮助是极大的赞赏。提前致谢。