4

我正在开发一个 Windows Phone 7 应用程序,我将在其中使用必应地图显示 ATM 靠近您的位置。

我有一个带有地址和 gps 坐标的 xml 文件。但是如何将这个文件从 Visual Studio 添加到我的程序中呢?如果我将 BuildAction 设置为 Content 并将 Copy 到输出目录设置为 Copy 总是。该文件仍然不在 IsolatedStorage 中。我必须建立一种机制来从网上下载信息吗?还是有其他方法?

4

3 回答 3

4

在 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
于 2010-09-11T12:57:54.237 回答
2

您不能在设计时直接将文件传递到隔离存储。仅在应用程序运行时。

我仍然建议通过 Web 服务将文件传递给应用程序。主要是因为如果最终您需要更改 XML 的内容,您将需要更新应用程序。

我要做的只是创建一个 WCF 服务,该服务将通过一个简单的 HTTP 请求返回序列化数据(或现有 XML)。

于 2010-09-12T21:30:17.160 回答
1

“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) 用于指定要备份/恢复的子目录。

于 2011-07-10T08:52:40.217 回答