我可以用文件创建一个页面:
Page page = BuildManager.CreateInstanceFromVirtualPath( virtualPath, typeof(Page)) as Page;
如何从流或字符串中实例化页面?
谢谢.
您可以创建自己的VirtualPathProvider,它位于ASP.NET解析器和文件系统之间.ASP.NET中的默认提供程序从磁盘读取ASPX标记,但您可以创建自己的以从任何位置读取它(SQL,流,字符串等).
本质上它是如何工作的是自定义VirtualPathProvider类接管虚拟路径的处理,如"〜/ MyPage.aspx"(您必须将其传递给BuildManager).它提供了自定义逻辑,用于决定如何处理"〜/ MyPage.aspx",其中可能包括返回存储在字符串或内存流中的数据.
这里有一些阅读来帮助您入门:
如何使用虚拟路径提供程序从ASP.NET 2.0中的虚拟路径动态加载和编译内容
覆盖ASP.NET使用VirtualPathProvider组合行为
虚拟化对内容的访问:从ZIP文件服务您的网站(一个使用相同概念做一些不同且相当有趣的事情的好例子)