将字符串从ASP页面(使用vbscript)传递给C#DLL函数作为输入参数

时间:2010-03-05 18:23:30

标签: asp-classic

我正在努力实现这一点,但这不起作用。我相信我错过了什么,请帮助我,我错了。我希望这是可以实现的。我们应该能够将一个字符串从ASP页面(使用vbscript)传递给c#dll(将此dll存储在gac中,我已经使用regasm实用程序注册了它。)

以下是我的代码:

Function GetObj()
Set Obj = Server.CreateObject("namespace.classname")

Set inputStr = Nothing
inputStr = "myString"

Set GetObj = Obj.dotnetMethod(inputStr)
SET Obj = NOTHING
End Function

我面临的问题是,当我将inputStr传递给obj.dotnetMethod时,它无法识别我从asp页面传递的字符串,并且它不会返回给我任何它应该的结果。 / p>

2 个答案:

答案 0 :(得分:0)

可能是unicode问题--.Net期望unicode字符串。我相信ASP不会。

但是如果你甚至不确定该方法是否已注册,那么你必须确保dll是COM可见的。 ASP是一个对托管代码或.Net一无所知的世界。你必须使用COM。你知道,旧学校regsvr32或ASP都找不到它。

答案 1 :(得分:0)

我可以猜到一些可能出错的事情(你的问题确实需要更多细节)

Set GetObj = Obj.dotnetMethod(inputStr)
  • dotnetMethod会返回StringDateTime或原始类型Int32,在这种情况下,您应该删除Set关键字。
  • dotnetMethod返回一个不是ComVisible本身的对象。

顺便说一句,

Set inputStr = Nothing
inputStr = "myString"

为什么将inputStr设置为Nothing,然后为其分配一个字符串??