繁体   English   中英

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

[英]Deserialize data from file NOT asynchronously

我只是想知道是否有可能在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;
    }

不,没有办法同步进行。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM