【发布时间】:2014-04-11 19:42:05
【问题描述】:
在 Windows 8 中它运行良好。 当我将它升级到 Windows 8.1 时出现错误:
Error 1 The call is ambiguous between the following methods or properties: 'System.IO.WindowsRuntimeStreamExtensions.AsRandomAccessStream(System.IO.Stream)' and 'EventHandler.UI.Extensions.StreamExtensions.AsRandomAccessStream(System.IO.Stream)'...
这是我得到错误的方法:
public BitmapImage ConvertByteArrayToBitMapImage(byte[] imageByteArray)
{
BitmapImage bitmapImg = new BitmapImage();
MemoryStream memStream = new MemoryStream(imageByteArray);
var randomAccessStream = memStream.AsRandomAccessStream(); //This line has error.
bitmapImg.SetSourceAsync(randomAccessStream);
return bitmapImg;
}
有人可以帮我吗?
谢谢。
【问题讨论】:
-
删除方法的 using 语句之一并使用完整签名
-
EventHandler.UI.Extensions.StreamExtensions命名空间是什么? -
或者使用
AsRandomAccessStream的完整命名空间,而不是像System.IO.WindowsRuntimeStreamExtensions.AsRandomAccessStream。我假设这个函数在更新之前就存在于 UI.Extensions 命名空间中。 -
考虑删除文件顶部的
using指令(不是语句)using System.IO;和using EventHandler.UI.Extensions;。如果你的类的命名空间是相关的,可以取决于你是否有usings 外部或内部namespace声明,但我认为它在这里不相关,因为在这种情况下不会有歧义(扩展之一会有更高的“优先级”)。
标签: c# windows-8 windows-runtime windows-8.1