加载使用的System.Reflection的ASP.NET 2.0 aspx页面?
-
22-08-2019 - |
题
我可以在另一个加载一个独立的ASPX页面站在使用的System.Reflection单独aspx页面?
我使用的是ASP.NET 2.0 Web站点的项目模型。
解决方案
尝试使用 BuildManager.CreateInstanceFromVirtualPath 一>。示例用法:
Page p = BuildManager.CreateInstanceFromVirtualPath("~/Default.aspx", typeof(Page))
这回答这个具体问题,虽然,根据您的意见,我不知道这是你真正想要的。
其他提示
不知道如何使用反射,这很可能是有可能这样做,但你可以使用捕捉一个aspx或ASP页面的输出字符串作家HttpContext.Server.Execute()。点击 我已经使用这个渲染一些复杂的电子邮件模板,但不知道这是否是你说的很追求的。
如果你从一个UI.Page继承类网页背后的代码,你可以用这样的方式: 设置CONTEXT到当前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);
不隶属于 StackOverflow