在Windows Phone 8.1后台任务中读取XML文件

时间:2014-08-13 06:06:53

标签: c# winrt-xaml windows-phone-8.1

我正在构建一个Windows Phone 8.1 RT应用程序,它在后台任务中运行MP3文件。

我按照此处显示的示例代码中的步骤操作:http://code.msdn.microsoft.com/windowsapps/BackgroundAudio-63bbc319

在MyPlaylistManager项目中,我想从XML文件构建自己的播放列表。

当我尝试访问此XML文件时,我收到异常。

  

类型' System.Xml.XmlException'的例外情况发生在SYSTEM.XML.NI.DLL中,但未在用户代码中处理

     

其他信息:发生了内部错误。

我已将XML文件添加到Project并设置

  

构建操作:内容

     

复制到输出目录:如果更新则复制

要访问我在下面的选项中累了的文件:

  XDocument xdoc = XDocument.Load("ms-appx:///XYZ.xml");

  XDocument xdoc = XDocument.Load("XYZ.xml");

根据文档,Windows Phone 8.1支持XDocument.Load: http://msdn.microsoft.com/en-us/library/bb343181(v=vs.110).aspx

Directory Structure of my Solution

关于我做错了什么的任何指示。 感谢。

1 个答案:

答案 0 :(得分:1)

我认为问题在于,因为您没有提供正确的路径。您的文件位于项目 MyPlaylistManager 中。尝试使用:

XDocument xdoc = XDocument.Load("ms-appx:///MyPlaylistManager/Quran.xml");
// or like this:
StorageFile file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(@"MyPlaylistManager\Quran.xml");

另外不要忘记在参考文献中包含 MyPlaylistManager 。也许this answer也会有所帮助。

编辑 - 您也可以尝试使用XDocument.Load(Stream) - 然后在您的 BackgroundTask 中首先获取 StorageFile 然后加载 XDocument 使用 Stream 从文件中获取。