在Windows 8应用程序中加载基础数据

时间:2013-03-31 16:48:01

标签: windows-8 windows-runtime winrt-xaml

我是Windows 8应用开发的新手。我正在尝试移植我在.NET中编写的旧应用程序。此应用程序使用基本数据存储为四个XML文件,这些文件作为“Ressource”添加到项目中,并使用System.Xml.Serialization.XmlSerializer对它们进行反序列化。

使用Windows 8商店应用程序发送此类数据的最佳方式是什么?把它们放在资产文件夹中?

在Windows 8应用中加载和绑定此类数据的最佳方法是什么?

我很感激你能给我的一切,直接回答,有用的链接或关于Windows 8中数据加载和绑定的视频......

2 个答案:

答案 0 :(得分:1)

  

使用Windows 8商店应用程序发送此类数据的最佳方式是什么?把它们放在资产文件夹中?

是的,将它们放在您的资源文件夹中。务必将构建属性设置为“内容”+“复制到输出”。完成此操作后,您可以使用以下网址从您的应用访问它们:ms-appx:///Assets/myxmlfile.xml

例如:

StorageFile xmlFile = await StorageFile.GetFileFromApplicationUriAsync
    (new Uri("ms-appx:///Assets/myxmlfile.xml"));

上面提供了一个可用于读取文件的文件对象。显然,由于您正在阅读Assets文件夹,因此您的文件将是只读的。

  

在Windows 8应用中加载和绑定此类数据的最佳方法是什么?

对于数据绑定,这可能有点太大而无法覆盖在一个答案中。您可能需要查看此Windows 8 Data Binding Sample

答案 1 :(得分:1)

您可以在商店应用中使用资源,以下是示例:

public static string GetXmlContentsFromResource(Assembly asm, string dataName)
{
  string contents = "";

  Stream stream = asm.GetManifestResourceStream(asm.GetName().Name + "." + dataName);
  using (StreamReader reader = new StreamReader(stream))
  {
    contents = reader.ReadToEnd();
  }
  return contents;
}

您应该将XML文件添加到解决方案并将其标记为“Embedded Resource”,如果您将XML文件放在子目录中,例如,如果文件夹名为Data且xml文件是Data1.xml,那么您应该将参数dataName发送到上面像这样的方法“data.Data1.xml”。

对于数据绑定,最好的方法是将XML反序列化为对象或反映XML内容的对象列表。