我创建了一个 C# 类的 COM 互操作来访问这个互操作使用 javascript。该类包含一个 Addition() 方法,但该方法无法在 javascript 中访问。
代码如下
接口 IMathInterface
namespace CCWTEST
{
[Guid("756892A0-1242-4BF7-984D-C13E68000E8E")]
[ComVisible(true)]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface IMathInterface
{
[DispId(1)]
int Addition(int i, int j);
}
}
类 ClassMath
[Guid("CA9AD3A7-BD31-4BE2-A780-8864D493BA5F")]
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("CCWTEST.ClassMath")]
public class ClassMath : IMathInterface
{
[ComVisible(true)]
public int Addition(int x, int y)
{
return x + y;
}
}
然后创建的 snk 文件CCWMathTest.snk
也注册到 GACUtil 中。然后使用 RegAsm 命令创建一个 tlb 文件。所有这些事情都成功完成。
然后创建一个 Web 应用程序以将类方法访问到 javascript 中。
代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<object classid="CLSID:CA9AD3A7-BD31-4BE2-A780-8864D493BA5F" height="0" width="0"
id="obj7" name="obj7">
</object>
<title></title>
<script type="text/javascript">
window.onload = onLoad;
function onLoad() {
alert(obj7.Addition(3,1));
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
运行此代码时,它给了我一个错误“对象不支持属性或方法'添加'” 如何使用 COM 互操作在 Javascript 中访问此方法