Serialization 无法在WinRT单元测试中打开文件

Serialization 无法在WinRT单元测试中打开文件,serialization,windows-runtime,storagefile,Serialization,Windows Runtime,Storagefile,我正在编写一个单元测试来验证对象的序列化,并且我能够成功地保存文件而不会出现任何问题。我甚至可以浏览文件并验证内容是否正确。但是,当我试图打开文件进行读取时,总是会收到UnauthorizedAccess异常 以下是用于保存项目的代码: public static async Task SaveItem<T>(string folderName, T item) where T : BaseBusinessItem { if (

我正在编写一个单元测试来验证对象的序列化,并且我能够成功地保存文件而不会出现任何问题。我甚至可以浏览文件并验证内容是否正确。但是,当我试图打开文件进行读取时,总是会收到UnauthorizedAccess异常

以下是用于保存项目的代码:

        public static async Task SaveItem<T>(string folderName, T item)
        where T : BaseBusinessItem
    {
        if (string.IsNullOrEmpty(folderName))
        {
            throw new ArgumentNullException("folderName");
        }

        if (item == null)
        {
            throw new ArgumentNullException("item");
        }

        try
        {
            var folder = await ApplicationData.Current.LocalFolder
                                             .CreateFolderAsync(folderName, CreationCollisionOption.OpenIfExists);
            var file =
                await
                folder.CreateFileAsync(item.UniqueID.GetHashCode().ToString(), CreationCollisionOption.ReplaceExisting);
            var stream = await file.OpenAsync(FileAccessMode.ReadWrite);
            using (var outStream = stream.GetOutputStreamAt(0))
            {
                var serializer = new DataContractJsonSerializer(typeof(T));
                serializer.WriteObject(outStream.AsStreamForWrite(), item);
                await outStream.FlushAsync();
            }
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex.ToString());
        }
    }
    public static async Task<T> RestoreItem<T>(string folderName, string hashCode)
        where T : BaseBusinessItem, new()
    {
        if (string.IsNullOrEmpty(folderName))
        {
            throw new ArgumentNullException("folderName");
        }

        if (string.IsNullOrEmpty(hashCode))
        {
            throw new ArgumentNullException("hashCode");
        }

        var folder = await ApplicationData.Current.LocalFolder.GetFolderAsync(folderName);
        var file = await folder.GetFileAsync(hashCode);
        var inStream = await file.OpenSequentialReadAsync();
        var serializer = new DataContractJsonSerializer(typeof(T));
        var retVal = (T)serializer.ReadObject(inStream.AsStreamForRead());
        return retVal;
    }
我可能缺少的任何想法或故障排除步骤。单元测试应用程序清单包括以下功能:文档库、Internet(客户端)。以下声明已就位:文件打开选择器、文件保存选择器和文件类型关联


谢谢

这个代码片段帮助我实现了我的目标。希望这对其他人有帮助:


它总是在以var inStream=file.OpenSequentialReadAsync()开头的行上失败;
    [TestMethod]
    public async Task TestFileSaveLoad()
    {
        await _ds.SaveItem("TestFolder");
        Guid ID = _item.UniqueID;
        _ds = await ItemDataSource.LoadItem("TestFolder", ID.GetHashCode().ToString());
    }