我正在开发一个 Windows Phone 7 应用程序,我将在其中使用必应地图显示 ATM 靠近您的位置。
我有一个带有地址和 gps 坐标的 xml 文件。但是如何将这个文件从 Visual Studio 添加到我的程序中呢?如果我将 BuildAction 设置为 Content 并将 Copy 到输出目录设置为 Copy 总是。该文件仍然不在 IsolatedStorage 中。我必须建立一种机制来从网上下载信息吗?还是有其他方法?
我正在开发一个 Windows Phone 7 应用程序,我将在其中使用必应地图显示 ATM 靠近您的位置。
我有一个带有地址和 gps 坐标的 xml 文件。但是如何将这个文件从 Visual Studio 添加到我的程序中呢?如果我将 BuildAction 设置为 Content 并将 Copy 到输出目录设置为 Copy 总是。该文件仍然不在 IsolatedStorage 中。我必须建立一种机制来从网上下载信息吗?还是有其他方法?
在 Visual Studio 项目中列为内容的文件将复制到生成的 XAP 文件(类似于 ZIP 文件)。它们不会被复制到独立的存储中。
对于 XML 文件,您可以调用XmlReader.Create,并将文件的路径作为参数,如下所示:
using (XmlReader reader = XmlReader.Create("path/to/file.xml"))
{
// read XML file here
}
或者您也可以调用Application.GetResourceStream并使用返回的StreamResourceInfo对象的Stream属性:
StreamResourceInfo sri = Application.GetResourceStream(
new Uri("path/to/file.xml", UriKind.Relative));
// read XML file here from sri.Stream, e.g. using a StreamReader object
您不能在设计时直接将文件传递到隔离存储。仅在应用程序运行时。
我仍然建议通过 Web 服务将文件传递给应用程序。主要是因为如果最终您需要更改 XML 的内容,您将需要更新应用程序。
我要做的只是创建一个 WCF 服务,该服务将通过一个简单的 HTTP 请求返回序列化数据(或现有 XML)。
“Mango” SDK 附带ISETool,它可以在本地目录中获取和恢复应用程序隔离存储的快照:
# Copy data from IS to directory
ISETool.exe ts xd <PRODUCT-ID> "C:\TempDirectory\IsolatedStore"
# Copy data from IS to directory
ISETool.exe rs xd <PRODUCT-ID> "C:\TempDirectory\IsolatedStore"
如果您不想覆盖整个 IS,该工具支持一个选项 ( device-folder
) 用于指定要备份/恢复的子目录。