0

我知道如何从经典 ASP 站点(Server.CreateObject、gacutil 和所有其他站点)调用 .net 代码的练习。我说的是从 VBScript 代码调用 .net DLL。(这与 ASP.net 无关)

我想知道的是,如何将整个 Classic ASP 会话的内容传递给 .net 代码。我想我想传递Session.Contents给 .net 代码,但我不知道如何编写一个可以接受该对象的接口。

如果您还可以告诉我如何传递对象的全部内容,则可以加Request.FormASPError

4

1 回答 1

0

假设您的意思是Set invokedNetDLL = CreateObject("MyNamespace.MyType")当您说“从 VBScript 代码调用 .net DLL”时,我会尝试以下操作:

<%
    Dim key
    Dim serializedSession
    Dim invokedNetDLL

    For Each key in Session
        serializedSession = key & "=" & Session(key) & "&"
    Next

    'Trim last &
    serializedSession = Left(serializedSession, Len(serializedSession) - 1)

    Set invokedNetDLL = CreateObject("MyNamespace.MyType")
    invokedNetDLL.MyMethod(serializedSession)

%>

就目前Request.Form而言,可以应用相同的方法:

<%
    Dim key
    Dim serializedSession
    Dim serializedRequestForm
    Dim invokedNetDLL

    For Each key in Request.Form
        serializedRequestForm = key & "=" & Request.Form(key) & "&"
    Next

    'Trim last &
    serializedRequestForm = Left(serializedRequestForm, Len(serializedRequestForm) - 1)

    For Each key in Session
        serializedSession = key & "=" & Session(key) & "&"
    Next

    'Trim last &
    serializedSession = Left(serializedSession, Len(serializedSession) - 1)

    Set invokedNetDLL = CreateObject("MyNamespace.MyType")
    invokedNetDLL.MyMethod(serializedRequestForm, serializedSession)

%>

我还没有测试过这段代码,但这是我要开始的地方。

于 2012-10-09T18:44:04.443 回答