public void getContent() {
string VirtualPath = "~/Content.aspx";
var page = BuildManager.CreateInstanceFromVirtualPath( VirtualPath, typeof( Page ) ) as IHttpHandler;
page.ProcessRequest( HttpContext.Current );
}
我正在使用该函数加载来自不同文件的内容,但是“page.ProcessRequest(HttpContext.Current)”在当前上下文中插入内容,而我需要的是返回内容的函数指定的文件。
我想知道是否有一种工作方式来创建一个新的HttpContext,因此“page.ProcessRequest”不会在当前响应中插入任何内容。
答案 0 :(得分:4)
使用Server.Execute。 http://msdn.microsoft.com/en-us/library/ms150027.aspx
您可以指定要与TextWriter一起执行的HttpHandler以将内容转储到。
答案 1 :(得分:2)
您无法创建新的HttpContext
,无需进行大量的解决方法。
这是ASP.NET和BCL的失败之一 - 使Web应用程序不可测试(或者至少很难在没有HttpContext
的情况下进行测试。
我不清楚您的要求what I need is the function to return the content of the specified file
- 您能否准确解释一下您的意思?
答案 2 :(得分:1)
查看Pex/Moles它包含一个模拟框架,可以模拟几乎任何类型或成员,即使它是密封的或静态的。 (它通过使用自定义测试主机来实现)