如何从C#方法返回JavaScript“本机”数组? [英] How to return a JavaScript 'native' array from a C# method?

查看:106
本文介绍了如何从C#方法返回JavaScript“本机”数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图通过使用 ActiveXObject 调用C#方法:

I'm trying to call a C# method from JavaScript by using ActiveXObject:

var myobj = new ActiveXObject('myobject');
var arr = myobj.GetArray();

最终, arr 将包含 SAFEARRAY 对象,但不是 JScript 数组。有没有办法从C#方法返回本机JavaScript对象?

Eventually, arr will contain a SAFEARRAY object, but not JScript array. Is there any way to return native JavaScript object from a C# method?

推荐答案

我自己找到了解决方案,但没有文档存在对于这部分。
解决方案是以下列方式使用 JScript.ArrayObject

I found the solution by myself, but no documentation exists for this part. The solution is to use JScript.ArrayObject in the following way:

ArrayObject _lastField;
byte[] byteArray = new byte[]{2,1,2,3};
object[] array = new object[byteArray.Length];
byteArray.CopyTo(array, 0);
_lastField = Microsoft.JScript.GlobalObject.Array.ConstructArray(array);

之后你就可以使用 _lastField JavaScript中的数组,如本机数组:

After that you will be able to use the _lastField array in JavaScript like a native array:

var myobj = new ActiveXObject('myobject');
var arr = myobj.LastField;
alert(arr[1]);

这篇关于如何从C#方法返回JavaScript“本机”数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆