Предполагая, что код ниже:Рендер ASPX страницы во время выполнения из базы данных
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 требуются полные разрешения на доверительные отношения (или делаются в какой-то момент) и могут не выполняться в среде общего хостинга. – Chris
Да. Полное доверие - большое ограничение. Разумеется, решение со средним доверием будет лучше, если таковое существует. –