Pregunta

¿Puedo cargar una página aspx solo soporte en otro pie página aspx solo using System.Reflection?

Estoy utilizando el modelo de proyecto Web 2.0 sitio de ASP.NET.

¿Fue útil?

Solución

Trate de usar BuildManager.CreateInstanceFromVirtualPath . Ejemplo de uso:

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 es lo que realmente quiere.

Otros consejos

No se sabe acerca de hacerlo utilizando la reflexión, que bien puede ser posible, pero se puede capturar la salida de una página aspx o ASP a un escritor cadena usando HttpContext.Server.Execute ().
He utilizado este para la prestación de algunos complejos plantillas de correo electrónico, pero no sé si eso es exactamente lo que está después.

Si usted tiene una clase heredada de UI.Page para su código detrás de la página, se puede usar de esta manera: Definir contexto de 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()

Así que usted puede tener fuertes valores escritos y, si se va a cambiar el signo de un método que va a ser advertido.

He implementado la siguiente solución y es exactamente lo que yo 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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top