【发布时间】:2014-04-15 10:45:15
【问题描述】:
我刚刚将我的项目从 Win 8 升级到 Win 8.1,我正在尝试利用 SDK 中的一些新功能。其中之一是新的AsRandomAccessStream 扩展方法。我遇到的问题是,当我使用它时,我得到了一个未经授权的访问异常。
异常:捕获:“无法访问 MemoryStream 的内部缓冲区。” (System.UnauthorizedAccessException) 一个 System.UnauthorizedAccessException 被捕获:“MemoryStream 的 无法访问内部缓冲区。” 时间:3/11/2014 10:23:11 AM 线程:[4308]
BitmapImage image = new BitmapImage();
var imageStream = new MemoryStream(imageBytes as byte[]);
image.SetSource(imageStream.AsRandomAccessStream());
- imageBytes 是一个有效字节[]
- imageStream 是一个有效的 MemoryStream
- imageStream.Position = 0
有什么想法吗?
【问题讨论】:
-
你需要那个电话吗? MemoryStream 应该已经可以很好地处理随机访问。试着把它拿出来,即。只需传入
imageStream。 -
这不起作用,因为
SetSource需要一个实现IRandomAccessStream的对象,而MemoryStream没有实现。 -
也许这会给你你所需要的? canbilgin.wordpress.com/2012/06/06/…
-
我在 Win 8 中有一个解决方法,但我很好奇为什么 8.1 SDK 中引入的新扩展方法会为我抛出异常。
-
解决方案是什么? :)
标签: c# windows-8.1