我尝试为 C# 方法创建 COM 组件,然后尝试使用 javascript 访问此方法。
我已经运行 GACUtil -i 和 Regasm /Codebase 命令来创建共享程序集,并成功注册到注册表中。这是我的 C# 方法,它为此返回一个 int[] 数组,我为此方法创建了一个 COM 组件。 nChannelsCount = 15用于 for 循环
[Guid("4794D615-BE51-4a1e-B1BA-453F6E9337C4")]
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
[ComSourceInterfaces(typeof(IComOjbect))]
public class MyComObject : IComOjbect
{
}
[Guid("4B3AE7D8-FB6A-4558-8A96-BF82B54F329C")]
[ComVisible(true)]
public interface IComOjbect
{
[DispId(0x10000009)]
int[] GetData(int index);
}
但是当我在 javascript 中访问此方法时,它只给了我 15 个计数,但我希望在 Quick Watch 中显示 5500 个计数。我不知道如何在 javascript 中执行此操作以获取此代码,但我仍然尝试此 javascript 代码,如下所示
<html>
<head>
<title>My Com Component</title>
<object id="myComComponent" name="myComComponent" classid="clsid:4794D615-BE51-4A1E-B1BA-453F6E9337C4">
</object>
<script language="javascript" type="text/javascript">
function MyComComponent_onload()
{
try {
var nAllData = [];
for (var index = 0; index < 15; index++)
{
nAllData.push(myComComponent.GetData(index));
}
alert(nAllData.length);
}
catch (err) {
alert(err.message);
}
}
</script>
</head>
<body onload="MyComComponent_onload();" onunload="MyComComponent_onunload();">
</body>
</html>