0

従来の ASP サイト (Server.CreateObject、gacutil、およびその他すべて) から .net コードを呼び出す方法についてはよく知っています。VBScript コードから .net DLL を呼び出すことについて話しているのです。(ASP.netとは関係ありません)

私が知りたいのは、Classic ASP セッション全体の内容を .net コードに渡すにはどうすればよいかということです。.netコードに渡したいと思っているSession.Contentsのですが、そのオブジェクトを受け付けるインターフェースの書き方がわかりません。

オブジェクトRequest.Formだけでなくコンテンツ全体を渡す方法も教えていただければボーナスポイントです。ASPError

4

1 に答える 1

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)

%>

このコードはまだテストしていませんが、ここから始めます。

于 2012-10-09T18:44:04.443 に答える