从经典ASP调用.NET导出方法

时间:2011-06-22 15:57:48

标签: .net com asp-classic

这很奇怪。我能够设置环境,以便我可以从传统的ASP页面调用.NET方法(通过COM)。

所有内容实际上都按预期工作,直到我必须调用需要.NET类型的.NET方法。

所以我有一个名为

的方法

ApplyCategory(int subjectId,Category cat){...} 当然,我也定义了类别类型。

在我的经典asp页面中,我有这个:

dim categoryUtil, cat
set categoryUtil = Server.CreateObject("mydll.CategoryUtil")
set cat = Server.CreateObject("mydll.Category")
cat.id= 123
cat.property = "so and so"
'...
categoryUtil.ApplyCategory(567, cat) ' I get this error here:
'Microsoft VBScript runtime error '800a0005' 
'Invalid procedure call or argument: 'ApplyCategory' 

这里有什么问题? COM无法识别ApplyCategory的方法签名吗?我该如何正确拨打电话?

2 个答案:

答案 0 :(得分:1)

我无法帮助您解决'为什么',但我建议更改ApplyCategory()签名,以便它接受两个整数而不是整数和类别。第二个整数将是类别id,这将否定传递整个类别的需要。

答案 1 :(得分:1)

我想我已经明白了。

为了记录,这就是我所做的。

COM在这种情况下方法覆盖不是很好,所以我不得不改变ApplyCategory的签名 ApplyCategory(int,Category)到ApplyCategory(int,object)

并且有效。