异步反序列化文件中的数据

时间:2014-01-28 14:35:26

标签: c# serialization windows-8 windows-runtime isolatedstorage

我只是想知道是否有可能在WinRT应用程序中异步地反序列化文件中的数据。看起来我必须让StorageFile对象反序列化它并使它必须是异步的。是对的吗?或许你知道我是否能同步做到这一点? 这是有效的异步代码,但它是ASYNC

    public static async Task<StorageFile> GetFileFromAsync(string relativeFileName)
    {
        StorageFolder localAppDataFolder = ApplicationData.Current.LocalFolder;
        try
        {
            StorageFile file = await localAppDataFolder.GetFileAsync(relativeFileName);
            return file;
        }
        catch (FileNotFoundException)
        {
            return null;
        }
    }

    public static async Task<T> ReadFromXmlInIsAsync<T>(string path) where T : class
    {
        T data;
        StorageFile isolatedStorageFile = await IsolatedStorageHelper.GetFileFromAsync(path);
        if(isolatedStorageFile == null) return null;
        using (IInputStream sessionInputStream = await isolatedStorageFile.OpenReadAsync())
        {
            DataContractSerializer sessionSerializer = new DataContractSerializer(typeof(T));
            data = (T)sessionSerializer.ReadObject(sessionInputStream.AsStreamForRead());
        }
        return data;
    }

1 个答案:

答案 0 :(得分:0)

不,没有办法同步进行。

所有WinRT API都是异步的,以鼓励开发人员编写响应式应用程序。