我有可重用的 HTTPHandlers 的问题。我想检查该IsReusable
属性是如何工作的。所以我创建了两个处理程序:
可重复使用的:
public class ReusableHandler : IHttpHandler
{
public bool IsReusable
{
get { return true; }
}
private int _counter;
public ReusableHandler()
{
_counter = 0;
}
public void ProcessRequest(HttpContext context)
{
context.Response.Write("Reusable: " + _counter++);
}
}
并且不可重复使用:
public class NonReusableHandler : IHttpHandler
{
public bool IsReusable
{
get { return false; }
}
private int _counter;
public NonReusableHandler()
{
_counter = 0;
}
public void ProcessRequest(HttpContext context)
{
context.Response.Write("NonReusable: " + _counter++);
}
}
它们都按预期工作:Reusable 每次返回递增值,而 NonReusable 每次返回 0。但是当我将我的处理程序用作 WebHandlers (*.ashx) 时,它们每次都返回 0(代码完全相同)。这是否意味着当我使用 WebHandlers 时该IsReusable
属性被忽略?