我正在使用Silverlight网站,这需要我从XML文件中读取。此文件位于服务器端。用户无法选择自己的文件之一。
Silverlight无法读取自己文件夹中的文件。只有通过OpenFileDialog,Silverlight才能读取文件,但该文件由用户上传并被视为流。正如我之前所说,我需要读取的文件不会上传,而是与XAP文件位于同一个地图中。这是我的VS2010解决方案资源管理器的屏幕截图:
因此,正如您所看到的,该文件包含在内。请注意:这不是为了成为一个成品,而是我正在努力更好地了解Silverlight。
我从这个博客获得了我正在使用的代码:http://blogs.silverlight.net/blogs/msnow/archive/2009/02/10/silverlight-tip-of-the-day-93-reading-xml-with-silverlight.aspx
我已经将整个班级粘贴在一个粘贴页面中,因为这里粘贴的内容有点多(但不要太多,不能给它读取:P):http://pastebin.com/eEMGGxsB
永远不会执行与DownloadStringCompleted EventHandler绑定的方法。调试器也不会介入它。
谁能告诉我这是怎么回事?
答案 0 :(得分:0)
调用DownloadStringAsync的代码看起来很合理。每当遇到这样的问题时,第一个停靠点是Fiddler。用它来确定客户端与服务器实际上有什么对话。
我在代码中看到已完成事件的一个立即失败是您在测试e.Result
是否有值之前访问e.Error
。当Result
包含异常时访问Error
将导致抛出该异常。因此,如果您没有将断点正确放在事件处理程序的顶部,那么在您的代码中,如果下载有问题,则永远不会达到它。
代码的另一个问题是您的displaySnippet
方法在完成的事件之前运行,因此将尝试访问尚未填充的codeList。不要忘记这是异步代码,您需要在完成的例程结束时执行displaySnippet
。