WinRT: загрузка статических данных с помощью GetFileFromApplicationUriAsync ()

У меня есть некоторые данные в моем приложении Windows 8, которые должны быть отправлены, и это просто некоторые статические данные. На самом деле:Это простой XML-файл, который должен быть десериализован.

Данные сохраняются в Assets \ data.xml (Assets - папка по умолчанию из Пустого шаблона приложения) .I '

используя этот фрагмент кода для доступа к нему:

private static async Task Load()
{
    if (Windows.ApplicationModel.DesignMode.DesignModeEnabled)
    {
        return new SampleData();
    }

    var uri = new Uri("ms-appx:///Assets/data.xml");
    Debug.WriteLine("Getting file from Application");
    var file = await StorageFile.GetFileFromApplicationUriAsync(uri);
    Debug.WriteLine("Opening file for reading async");
    var stream = await file.OpenStreamForReadAsync();

    var serializer = new XmlSerializer(typeof(MyObject));

    Debug.WriteLine("Begin deserialization");
    var result = (MyObject)serializer.Deserialize(stream.AsInputStream().AsStreamForRead());

    return result;
}

Метод вызова:

public static MyObject GetMyObject()
{
    if (_myObject == null)
    {
        _myObject = Load().Result;
    }

    return _myObject;
}

"смешной" часть о том, что это:

Если я установил точку останова наvar uri = new Uri(...); и используйте F11 для пошагового выполнения кода, все работает как положено. Я получаю все строки отладки, и мое приложение показывает статические данные, как и хотел.

Если я неустановить точку останова и неперешагнуть через этот кусок кода, я получаю только выходные данные отладкиGetting a file from Application и больше ничего не происходит. Кажется, чтоGetFileFromApplicationUriAsync() никогда не вернется. Я ждал более пяти минут, но ничего не произошло.

У кого-нибудь есть идеи?

Ответы на вопрос(1)

Ваш ответ на вопрос