문제

System.Reflection을 사용하여 다른 독립형 ASPX 페이지에 독립형 ASPX 페이지를로드 할 수 있습니까?

ASP.NET 2.0 웹 사이트 프로젝트 모델을 사용하고 있습니다.

도움이 되었습니까?

해결책

사용해보십시오 buildManager.createInstancefromVirtualPath. 샘플 사용 :

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

이것은 당신의 의견을 바탕으로 이것이 당신이 정말로 원하는 것인지 확실하지 않습니다.

다른 팁

반사를 사용하는 것에 대해 알지 못합니다. 가능할 수도 있지만 httpcontext.server.execute ()를 사용하여 ASPX 또는 ASP 페이지의 출력을 문자열 작성자에게 캡처 할 수 있습니다.
나는 복잡한 이메일 템플릿을 렌더링하는 데 이것을 사용했지만 그것이 당신이 그 어떤 것인지 모르겠습니다.

UI.Page에서 상속 된 클래스가있는 경우 페이지 뒤에 코드에 대한 코드가있는 경우 다음과 같은 방식으로 사용할 수 있습니다.현재 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()

따라서 강력한 입력 값을 가질 수 있으며 방법의 부호를 변경하면 경고를받을 수 있습니다.

다음 솔루션을 구현했으며 정확히하고 싶은 일입니다.

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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top