我正在努力实现这一点,但这不起作用。我相信我错过了什么,请帮助我,我错了。我希望这是可以实现的。我们应该能够将一个字符串从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>
答案 0 :(得分:0)
可能是unicode问题--.Net期望unicode字符串。我相信ASP不会。
但是如果你甚至不确定该方法是否已注册,那么你必须确保dll是COM可见的。 ASP是一个对托管代码或.Net一无所知的世界。你必须使用COM。你知道,旧学校regsvr32或ASP都找不到它。
答案 1 :(得分:0)
我可以猜到一些可能出错的事情(你的问题确实需要更多细节)
Set GetObj = Obj.dotnetMethod(inputStr)
dotnetMethod
会返回String
,DateTime
或原始类型Int32
,在这种情况下,您应该删除Set
关键字。 dotnetMethod
返回一个不是ComVisible本身的对象。顺便说一句,
Set inputStr = Nothing
inputStr = "myString"
为什么将inputStr设置为Nothing,然后为其分配一个字符串??