如何从 JavaScript 访问 COM 字节数组

How do I access a COM byte array from JavaScript

我有一个 COM 接口,它有一个方法,在 VB 中有一个像这样的签名:

Public Function GetData() As Byte()

在 C# 中显示为

public byte[] GetData();

在javascript中是一个奇怪的不透明物体。索引它 returns 未定义。

data[1] == undefined
typeof( data ) == "unknown"
data.Item(1) => error

我找不到任何方法直接在 javascript 中使用返回的对象。但是由于我无论如何都处于 COM 感知环境中,所以我可以使用的命名空间中有一些微软的东西,即 VBArray 类型。它允许您创建和使用来自 javascript 的 VB 样式数组。而VB数组可以理解为COM字节数组。 所以解决方案是这样的:

var data = thingy.GetData();
var jsArray = (new VBArray( data )).toArray();