在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。
但看起来它并不需要这样做。
祝好,
Dmitriy.