C# 通过虚拟路径动态实例化ASP.NET页面类对象

C# 通过虚拟路径动态实例化ASP.NET页面类对象,c#,asp.net,windows,visual-studio-2010,C#,Asp.net,Windows,Visual Studio 2010,这能做到吗?怎么做 我尝试了以下方法但没有成功: Method1使用BuildManager.CreateInstanceFromVirtualPath-发布后不起作用。(我假设它失败是因为我使用了强名称程序集预编译,不确定) 方法2使用以下代码: Page page = new SchedulerTest(); // An ASPX Page class (note: CodeBehind) page.AppRelativeVirtualPath = context.Request.Ap

这能做到吗?怎么做

我尝试了以下方法但没有成功:

  • Method1使用
    BuildManager.CreateInstanceFromVirtualPath
    -发布后不起作用。(我假设它失败是因为我使用了强名称程序集预编译,不确定)

  • 方法2使用以下代码:

    Page page = new SchedulerTest();  // An ASPX Page class (note: CodeBehind) 
    page.AppRelativeVirtualPath =
    context.Request.AppRelativeCurrentExecutionFilePath; 
    page.ProcessRequest(context);
    
    已找到-不起作用,因为我不知道页面类名 在运行时


    • 好的,下面是我的想法

      a) 为什么直到运行时才知道类的名称?你如何计算出类名是什么?如果您可以解决这个关系,那么您可以使用反射来创建页面的实例,然后使用它


      b) 你到底想达到什么目的?如果您试图根据某些条件(查询字符串或其他内容)将请求路由到另一个请求,则可以使用HttpModule并重写路径。我正努力想知道你还想做些什么。这样,您就可以再次使用虚拟路径。

      +1表示有趣的问题/-1表示随机链接,而不是解释=0。除了一个链接,请用几个句子解释“方法2”。链接可能会停止,问题(或答案)停止在将来也没有意义。我将尝试更好地解释我的情况:当出现错误时,我们的系统会通过查询“errouniousPage=~/path/PageErrorOccurredOn.aspx”重定向到“ErrorPage”。当我处理对“ErrorPage”的请求时,我想获取“PageErrorOccurredOn”对象实例来检查它使用的母版页。我能看到的最简单的方法是在请求发生时存储有关请求的信息。然后,当错误发生时,您可以只弹出最后的信息-或您正在使用的任何信息。使用诸如共享基类和oninit或load方法之类的方法添加到会话或其他地方。可以加载任何您想要的信息-当前相对url、母版页、页面名称。也许不是你想要的“好”,但是。。这两种方式听起来都不太好。