我一直在 ASP.NET 中以某种方式伪造/模拟/存根 HttpContext(在 ASP.NET MVC/MonoRail 中更容易)。
但是我可以看到 HttpContext 本身可以很容易地构建,实际上只需几行代码。
var tw = new StringWriter();
var workerReq = new SimpleWorkerRequest("/webapp", @"c:\here\there\wwwroot", "page.aspx", tw);
var context = new HtpContext(workerReq);
如果我们将这段代码包装成这样的东西,它应该可以正常工作,也许我们甚至可以使用它来渲染 ASPX:
using(Simulate.HttpContext()) {
HttpContext.Current.BlaBla;
}
所以问题是:
- 不应该这样做的原因。
- 应该这样做的原因。
- 为什么它没有被广泛使用(事实上我不记得任何关于它的帖子)。
我记得 Phill Haack 使用反射黑客构造 HttpContext 的一篇文章。
但似乎它只是不需要。
干杯,
德米特里。