Domanda

Posso caricare una pagina aspx alone stand a un'altra fissi pagina aspx solo using System.Reflection?

Sto usando il modello di progetto di sito Web ASP.NET 2.0.

È stato utile?

Soluzione

Prova a usare BuildManager.CreateInstanceFromVirtualPath . utilizzo di esempio:

Page p = BuildManager.CreateInstanceFromVirtualPath("~/Default.aspx", typeof(Page))

Questo risponde a questa domanda specifica, anche se, in base ai vostri commenti, non sono sicuro che questo è ciò che si vuole veramente.

Altri suggerimenti

Non so di farlo utilizzando la riflessione, che potrebbe essere possibile, ma è possibile catturare l'output di una pagina aspx o di asp per uno scrittore stringa utilizzando HttpContext.Server.Execute ().
Ho usato questo per rendere alcuni modelli di posta elettronica complesse, ma non so se questo è proprio quello che cercate.

Se si dispone di una classe ereditata dal UI.Page per il vostro codice dietro la pagina, è possibile utilizzare in questo modo: CONTESTO impostato al contesto HTTP corrente

Dim hndlr As IHttpHandler = PageParser.GetCompiledPageInstance("~/mypage.aspx", context.Server.MapPath("~/mypage.aspx"), CONTEXT)
Dim ipage As DerivedPage = DirectCast(hndlr, DerivedPage)
ipage.YourProperty= "Hello"
ipage.DoIt()

Così si può avere forti valori tipizzati e, se si cambia il segno di un metodo sarete avvertiti.

ho implementato la seguente soluzione ed è esattamente quello che voglio fare:

using System.Reflection;
using System.Web.Compilation;

Page p = BuildManager.CreateInstanceFromVirtualPath("~/mypage.aspx", typeof(Page)) as Page;
MethodInfo MyMethod = p.GetType().GetMethod("MyMethod");
MyMethod.Invoke(p, null);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top