如何将经典ASP响应对象传递给C#DLL

如何将经典ASP响应对象传递给C#DLL,c#,asp-classic,vbscript,httpresponse,C#,Asp Classic,Vbscript,Httpresponse,有谁能告诉我,是否可以将响应对象从经典asp传递到C#类库,如果可以的话,是如何实现的 我在ASP中使用C#2010 express和JScript,但我将使用VBScript回答 或者,如果有其他方法可以从dll输出到经典asp页面的http上下文,也可以 我认为这是不可能的,因为System.Web.HttpResponse对象似乎无法从类库中获得 感谢那些作出回应的人。以下是一些示例代码,供其他可能有相同问题的人完整回答: public string passObj(ASPTypeLibr

有谁能告诉我,是否可以将响应对象从经典asp传递到C#类库,如果可以的话,是如何实现的

我在ASP中使用C#2010 express和JScript,但我将使用VBScript回答

或者,如果有其他方法可以从dll输出到经典asp页面的http上下文,也可以

我认为这是不可能的,因为System.Web.HttpResponse对象似乎无法从类库中获得

感谢那些作出回应的人。以下是一些示例代码,供其他可能有相同问题的人完整回答:

public string passObj(ASPTypeLibrary.Response r)
{
    r.Write("text from DLL");
    return "OK";
}
在经典的asp方面:

var x = Server.CreateObject("dllTest.test");
x.passObj(Response);
响应对象是一个。因此,可以将其作为对象传递给方法,并使用反射调用属性

从我自己的机器上看,
iResponse IID
{D97A6DA4-D5F5-4763-9BE5-60126DD39E43}

类型库UUID是
{A79CBB28-1006-4227-BE61-CBEE2520C353}
。如果打开regedit并导航到
HKEY_CLASSES\u ROOT\TypeLib\{A79CBB28-1006-4227-BE61-CBEE2520C353}\2.0\0\win32
,默认键将包含可导入以创建互操作程序集的TypeLib的路径。

要访问包括响应在内的经典ASP对象,可以在C#项目中添加COM引用以“Microsoft Active Server页面对象库”

然后,您可以从C#中引用它,如下所示:


整个对象,或者只是它的一部分,比如查询字符串?整个对象,我想在我的dll中使用它来输出到http上下文。那么这是否是调用ASP页正在使用的同一个响应对象?如果不是,它是否有任何区别?似乎我可以将其作为ASPTypeLibrary.response传递,然后使用在IResponse接口或我可以做的事情:ASPTypeLibrary.Response=(ASPTypeLibrary.Response)ContextUtil.GetNamedProperty(“Response”);
ASPTypeLibrary.Response