IRandomAccessStreamReference to StorageFile Windows 10

IRandomAccessStreamReference to StorageFile Windows 10

我能够通过在 Windows 8.1.

中的简单转换将 IRandomAccessStreamReference 转换为 StorageFile

在 Windows 10 它抛出

Unable to cast object of type 'Windows.Storage.Streams.RandomAccessStreamReference' to type 'Windows.Storage.StorageFile'

关于我如何解决这个问题有什么建议吗?

StorageFile 实现 IRandomAccessStreamReference;如果不检查您的实例实现它并处理它没有实现的情况,就不一定可以安全地从后者转换为前者。

可能是您使用了声明为 return IRandomAccessStreamReference 的方法,但巧合的是 returned StorageFile 给出了 Windows 8 上的某些输入,尽管这不是部分API 合同。

如果你真的需要它是一个文件,你不能把它写成一个临时文件吗?

假设您仍然需要一个 StorageFile 对象,您可以使用 CreateStreamedFileAsync 方法将返回的流包装到一个临时文件中(避免一次全部写出然后再次读回).