Можно ли создать страницу из строки в ASP.Net?
Я могу создать страницу из файла с:
Page page = BuildManager.CreateInstanceFromVirtualPath(
virtualPath, typeof(Page)) as Page;
Как я могу создать страницу из потока или строки?
Спасибо.
1 ответ
Вы можете создать свой собственный VirtualPathProvider, который находится между анализатором ASP.NET и файловой системой. Поставщик по умолчанию в ASP.NET считывает разметку ASPX с диска, но вы можете создать свою собственную, чтобы читать ее из любого места (SQL, поток, строка и т. Д.).
По сути, он работает так, что пользовательский класс VirtualPathProvider берет на себя обработку виртуальных путей, таких как ~ ~ MyPage.aspx (которые вы должны передать в BuildManager). Он предоставляет собственную логику для решения, что делать с "~/MyPage.aspx", что может включать в себя возврат данных, хранящихся в строке или потоке в памяти.
Вот некоторые чтения, чтобы вы начали:
- Как использовать поставщиков виртуальных путей для динамической загрузки и компиляции содержимого из виртуальных путей в ASP.NET 2.0
- Переопределение поведения объединения ASP.NET с использованием VirtualPathProvider
- Виртуализация доступа к контенту: обслуживание вашего веб-сайта из ZIP-файла (хороший пример использования той же концепции, чтобы сделать что-то другое и довольно интересное)