如何将Classic ASP会话的全部内容传递给.net代码?

时间:2012-10-09 18:10:35

标签: asp-classic

我知道如何从Classic ASP站点(Server.CreateObject,gacutil和其他所有站点)调用.net代码。我在谈论从VBScript代码调用.net DLL。 (这与ASP.net无关)

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

如果您还可以告诉我如何传递Request.Form以及ASPError个对象的全部内容,那么

奖励积分。

1 个答案:

答案 0 :(得分:0)

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

<%
    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)

%>

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