gpt4 book ai didi

c# - 调用 C# COM 组件时在 javascript 中键入不匹配错误

转载 作者:行者123 更新时间:2023-11-28 02:02:52 24 4
gpt4 key购买 nike

我用 C# 创建了一个 Com 组件,并尝试在 Javascript 中访问。

我的 C# 方法是

Class myComComponent
{
private int[] nAllData;
public int[] GetArray(int index)
{
//Some Logic here that will return integer type of array{1,12,15,48,1452,45}
return nAllData;
}
}

从 javascript 调用它,但它给我一个类型不匹配错误。

Javascript代码

 function MyComComponent_onload() {
try {
var nAllData = new Array();
for (var i = 0; i<= 5; i++)
{
nAllData.push(myComComponent.GetArray(i));
}
}
catch (err)
{
alert(err.message);
}
}
<html>
<head>
<object id="myComComponent" name="myComComponent" classid="clsid:4794D615-BE51-4A1E-B1BA-453F6E9337C4">
</head>
<body onload="MyComComponent_onload();">
//// Html Code goes here
</body>
<html>

最佳答案

JavaScript 只能使用 COM 的自动化兼容子集。整数数组不属于该子集。

您需要返回 VARIANT 的 SAFEARRAY 才能与 JavaScript 兼容,或者返回具有 IEnumVariant 接口(interface)的对象(因此 foreach 有效),以及具有索引默认属性的 IDispatch(因此使用方括号进行索引有效)。

关于c# - 调用 C# COM 组件时在 javascript 中键入不匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18207665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com