Question

Puis-je charger une page autonome ASPX dans une autre page stand alone ASPX using System.Reflection?

J'utilise le site Web ASP.NET 2.0 modèle de projet.

Était-ce utile?

La solution

Essayez d'utiliser BuildManager.CreateInstanceFromVirtualPath . Exemple d'utilisation:

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

Cela répond à cette question précise, bien que, en fonction de vos commentaires, je ne suis pas sûr que ce soit ce que vous voulez vraiment.

Autres conseils

Je ne sais pas le faire en utilisant la réflexion, qui pourrait bien être possible, mais vous pouvez capturer la sortie d'une page ASPX ou asp à un écrivain de chaîne à l'aide HttpContext.Server.Execute ().
Je l'ai utilisé cela pour rendre certains modèles de courrier électronique complexes, mais je ne sais pas si cela est tout à fait ce que vous recherchez.

Si vous avez une classe héritée de UI.Page votre code behind, vous pouvez utiliser cette façon: Définir le contexte à votre contexte actuel http

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()

Vous pouvez avoir des valeurs fortes dactylographiées et, si vous allez changer le signe d'une méthode que vous serez averti.

J'implémenté la solution suivante et c'est ce que je veux faire exactement:

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);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top