为什么我得到“';System.Array';不包含';AsBuffer'";使用此Wi
本文关键字:quot AsBuffer Wi 包含 System Array 为什么 | 更新日期: 2023-09-27 18:27:35
根据此,可以使用以下代码将字节数组转换为BitmapImage:
public static async Task<BitmapImage> ByteArrayToBitmapImage(this byte[] byteArray)
{
if (byteArray != null)
{
using (var stream = new InMemoryRandomAccessStream())
{
await stream.WriteAsync(byteArray.AsBuffer());
var image = new BitmapImage();
stream.Seek(0);
image.SetSource(stream);
return image;
}
}
return null;
}
但是,我得到,"'System.Array'不包含'AsBuffer'的定义,也找不到接受'System.Array'类型的第一个参数的扩展方法'AsBuffer](您缺少using指令或程序集引用吗?)"
是不是"var流"赋值太模糊了(隐式键入),我需要为"流"var指定一个特定的数据类型?不是System.Array?
也许这是一条线索,来自"Windows应用商店应用程序成功":Buffers/byte数组--System.Runtime.InteropServices.WindowsRuntimeBufferExtensions:此类中的扩展方法提供了在.NET字节数组和WinRT缓冲区内容之间移动的方法,这些缓冲区以IBuffer实现的形式公开
但如果是这样的话,那还不足以让我知道该怎么处理它。它不是"TMI",而是"NEI"(信息不足)。
问题是编译器找不到扩展方法AsBuffer()
。请确保您有对名称空间System.Runtime.InteropServices.WindowsRuntime
的引用,即
using System.Runtime.InteropServices.WindowsRuntime;
如果您还没有添加对相应DLL的引用:
命名空间:System.Runtime.InteropServices.WindowsRuntime
程序集:System.Runtime.WindowsRuntime(在System.Runtime''WindowsRuntime.dll中)