为什么我得到“';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"(信息不足)。

为什么我得到“';System.Array';不包含';AsBuffer'";使用此Wi

问题是编译器找不到扩展方法AsBuffer()。请确保您有对名称空间System.Runtime.InteropServices.WindowsRuntime的引用,即

using System.Runtime.InteropServices.WindowsRuntime;

如果您还没有添加对相应DLL的引用:

命名空间:System.Runtime.InteropServices.WindowsRuntime

程序集:System.Runtime.WindowsRuntime(在System.Runtime''WindowsRuntime.dll中)