无法读取XML文件

时间:2018-04-11 20:30:35

标签: c# xml xaml uwp win-universal-app

我是UWP的新手,无法让我的XAML页面读取XML文件。我想获取XML文件中的条目并将它们加载到下拉列表中。我还没有在我的XAML页面中设置下拉列表,但我只是想读取XML文件。当我到达C#方法(Page_Loaded)时,它会收到一条错误消息,说我无法在UI线程中执行.Load命令,需要将其移动到Task.Run。这是我的XAML ......

<Page
    x:Class="TestProject.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:TestProject"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" Loaded="Page_Loaded">
</Page>  

这是我背后的代码......

using System.Xml.Linq;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;

namespace TestProject
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
            XDocument file = XDocument.Load(@"C:\AvailableTestsXMLFile.txt");             

        }       
    }
}

//欢迎任何帮助!

//这里是确切的错误...不应在UI线程上执行同步操作。考虑在Task.Run中包装此方法。

1 个答案:

答案 0 :(得分:2)

  1. 您可以查看此网站:UWP XmlDocument

  2. 在UWP中,您无法在没有filepicker的情况下从应用程序文件夹中访问文件。在未来的更新中,您将获得更多可能性,但现在 - 没有

  3. 尝试制作方法:

    public async Task LoadXML(string file)
    {
       await Task.Run(() => { XDocument xml = XDocument.Load(file); });
    }