Supponendo che il codice qui sotto:Render pagina ASPX in fase di esecuzione dal database
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?
}
}
come posso implementare CreatePage metodo per creare un'istanza di una pagina in base al contenuto della stringa piana di ASPX?
La nota è che la stringa ASPX stessa può contenere riferimento a MasterPage già esistente sul disco.
Mi rendo conto che ci deve essere un enorme problema di prestazioni con questo, ma in questa fase voglio solo sapere come posso farlo. Ovviamente dovrò mettere in cache il risultato.
Grazie.
In attesa di risposta. Sarebbe fantastico se fosse possibile. Buona domanda. –
L'input di Gonzalo e Rex riportato di seguito è accurato, ma tenere presente che l'implementazione di una nuova sottoclasse VirtualPathProvider richiede autorizzazioni di trust complete (o eseguite in un punto) e potrebbe non essere eseguibile in un ambiente di hosting condiviso. – Chris
Sì. La piena fiducia è una grande limitazione. Una soluzione con fiducia media sarebbe ovviamente migliore, se esiste. –