我是Windows 8应用开发的新手。我正在尝试移植我在.NET中编写的旧应用程序。此应用程序使用基本数据存储为四个XML文件,这些文件作为“Ressource”添加到项目中,并使用System.Xml.Serialization.XmlSerializer对它们进行反序列化。
使用Windows 8商店应用程序发送此类数据的最佳方式是什么?把它们放在资产文件夹中?
在Windows 8应用中加载和绑定此类数据的最佳方法是什么?
我很感激你能给我的一切,直接回答,有用的链接或关于Windows 8中数据加载和绑定的视频......
答案 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内容的对象列表。