c# asp.net reflection system.reflection

c# - Cargue una página aspx de ASP.NET 2.0 utilizando System.Reflection?



(4)

¿Puedo cargar una página aspx independiente en otra página aspx autónoma usando System.Reflection?

Estoy usando el modelo de proyecto del sitio web ASP.NET 2.0.


No sé cómo hacerlo utilizando Reflection, que bien puede ser posible, pero puede capturar el resultado de una página aspx o asp en un escritor de cadenas utilizando HttpContext.Server.Execute ().
Lo he usado para renderizar algunas plantillas complejas de correo electrónico, pero no sé si eso es lo que buscas.


Intenta usar BuildManager.CreateInstanceFromVirtualPath . Uso de muestra:

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

Esto responde a esta pregunta específica, aunque, en base a sus comentarios, no estoy seguro de que esto sea lo que realmente desea.


Si tiene una clase heredada de UI.Página para su código detrás de la página, puede usar de esta manera: configure CONTEXT a su contexto HTTP actual

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

Por lo tanto, puede tener fuertes valores tipeados y, si cambia el signo de un método, recibirá una advertencia.


Implementé la siguiente solución y es exactamente lo que quiero hacer:

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