【发布时间】:2010-12-19 08:55:10
【问题描述】:
假设代码如下:
public class DynamicAspxHandler : IHttpHandler {
bool IHttpHandler.IsReusable { get { return false; } }
void IHttpHandler.ProcessRequest(HttpContext httpContext) {
string aspxContent = PlainASPXContent();
Page page = CreatePage(httpContext, aspxContent);
page.ProcessRequest(httpContext);
}
Page CreatePage(HttpContext context, string aspxContent) {
// How to implement this?
}
}
我如何实现 CreatePage 方法以基于 ASPX 的纯字符串内容实例化页面?
请注意,ASPX 字符串本身不能包含对磁盘上现有 MasterPage 的引用。
我意识到这肯定存在巨大的性能问题,但在这个阶段我只想知道如何做到这一点。显然我将不得不缓存结果。
谢谢。
【问题讨论】:
-
期待答案。如果可能的话,那就太棒了。好问题。
-
以下来自 Gonzalo 和 Rex 的输入是准确的,但请注意,实现新的 VirtualPathProvider 子类需要完全信任权限(或曾在某一时刻这样做),并且可能无法在共享托管环境中运行。
-
是的。完全信任是很大的限制。如果存在这种情况,具有中等信任度的解决方案当然会更好。
标签: .net asp.net httphandler dynamic-compilation