Pergunta

Posso carregar uma página aspx autônomo em outra página aspx autônomo usando System.Reflection?

Eu estou usando o modelo de projeto 2.0 site Web ASP.NET.

Foi útil?

Solução

Tente usar BuildManager.CreateInstanceFromVirtualPath . Exemplo de uso:

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

Isto responde a esta pergunta específica, embora, com base em seus comentários, não tenho a certeza que é isso que você realmente quer.

Outras dicas

Não sei quanto a fazê-lo usando reflexão, que pode muito bem ser possível, mas você pode capturar a saída de uma página aspx ou asp para um escritor string usando HttpContext.Server.Execute ().
Eu tenho usado este para a prestação de alguns modelos de email complexas, mas não sei se isso é exatamente o que você está depois.

Se você tem uma classe herdada de UI.Page para o seu código por trás da página, você pode usar esse caminho: definir o contexto para o seu contexto http atual

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

Então você pode ter valores digitados fortes e, se você vai mudar o sinal de um método que você vai ser avisado.

Eu implementei a seguinte solução e é o que eu exatamente quero fazer:

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top