深入探索Silverlight应用开发与调试
1. Silverlight应用的隔离存储
Silverlight应用由于无权直接访问硬盘上的特定位置,因此必须使用隔离存储。在示例中,初始代码创建的路径是相对路径,即从一个未知位置开始的路径。而Windows Forms和WPF应用创建的路径是绝对路径,能明确知道数据的存储位置。
由于无法确定文件在硬盘上的实际位置,代码依赖隔离存储对象(ISO)来查找数据。示例使用 ISO.FileExists()
方法判断文件是否存在于硬盘上。若文件存在,代码会使用文件名、路径、所需访问权限和ISO作为输入,创建一个 IsolatedStorageFileStream
对象 Input
。
加载文档时,代码必须放在 try…catch
块中。即使文件存在,系统也可能不允许访问。而且,与桌面应用的可控环境不同,很难确定文件是否完整或可用。加载完成后,务必调用 Input.Close()
关闭数据文件。
若文件损坏, catch
部分会采取直接的处理方式。首先关闭 Input
,然后调用 ISO.DeleteFile()
从硬盘中删除损坏的文件。虽然这会导致设置丢失,让用户不满,但在无法很好控制计算环境时,这可能是处理问题的最佳方式。用户可根据需要更改默认设置,应用会自动为下一次会话保存这些设置。
2. 跟踪SilverlightXML项目示例
-
<