【问题标题】:Calling .NET exported method from classic ASP从经典 ASP 调用 .NET 导出方法
【发布时间】:2011-06-22 15:57:47
【问题描述】:

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

在我必须调用需要 .NET 类型的 .NET 方法之前,一切实际上都按预期工作。

所以我有一个名为

的方法

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

在我的经典 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 的方法签名吗?以及如何正确拨打电话?

【问题讨论】:

    标签: .net com asp-classic


    【解决方案1】:

    我想我明白了。

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

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

    它成功了。

    【讨论】:

    • 太好了,谢谢。我几乎肯定会很快使用它。
    【解决方案2】:

    我无法帮助您解决“为什么”,但我建议更改 ApplyCategory() 签名,使其接受两个整数,而不是一个整数和一个类别。第二个整数是类别 id,这样就不需要传递整个类别。

    【讨论】:

    • 但您明白我需要该对象的原因是为 .NET 提供处理调用所需的所有这些信息,如 cat.id= 123 和 cat.property = "so and所以”
    猜你喜欢
    • 2019-01-29
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    相关资源
    最近更新 更多