您好,我在 msnd 上看到,从 Ihttphandler 接口继承的任何东西都可以访问 httpcontext 对象(在下面链接页面的备注部分下)
我的问题是界面如何公开此对象...我在界面中看不到任何 httpcontext 类型的属性。我确实看到了接受 httpcontext 对象的“ProcessRequest”方法。但是我没有看到这是如何导致 httpcontext 对象直接从界面中暴露出来的,正如 msnd 页面所说。
如果我在这里遗漏了一个关键概念,请原谅我,这是相当新的。谢谢
您好,我在 msnd 上看到,从 Ihttphandler 接口继承的任何东西都可以访问 httpcontext 对象(在下面链接页面的备注部分下)
我的问题是界面如何公开此对象...我在界面中看不到任何 httpcontext 类型的属性。我确实看到了接受 httpcontext 对象的“ProcessRequest”方法。但是我没有看到这是如何导致 httpcontext 对象直接从界面中暴露出来的,正如 msnd 页面所说。
如果我在这里遗漏了一个关键概念,请原谅我,这是相当新的。谢谢
不,它只被传递到 ProcessContext 方法中。然后处理程序与该 HttpContext 实例交互,因为它是请求的上下文。您可以根据需要将上下文实例传递给各种其他方法。
如果您查看有关 IsReusable 属性的文档,为什么这样做会更清楚。当该属性为 时true,多个请求可以由同一个处理程序实例提供服务,因此必须为它们提供单独的 HttpContext 才能工作。
现在,如果将 IsReusable 指定为false,则可以将 ProcessRequest 中的 HttpContext 实例存储在实例的属性中。在某些情况下,不共享处理程序可能会导致性能问题,但您可能不需要担心这一点。