首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BuildManager解析页面继承

BuildManager解析页面继承
EN

Stack Overflow用户
提问于 2009-07-29 10:21:14
回答 2查看 937关注 0票数 3

我编写了一个VirtualPathProvider来改变ASP.Net应用程序加载aspx页面的方式。作为这个过程的一部分,我已经删除了代码隐藏文件,我只是简单地证明我的页面继承自特定的页面类。例:

代码语言:javascript
复制
<%@ Page Language="C#" AutoEventWireup="true" Inherits="Namespace.PageClass" %>

如果我这样做,我会得到以下例外:

HttpParseException无法加载“Namespace.PageClass”类型

我还尝试了以下几点:

代码语言:javascript
复制
<%@ Page Language="C#" AutoEventWireup="true" Inherits="Namespace.PageClass, AssemblyName" %>

这会产生以下错误:

HttpParseException无法加载程序集“AssemblyName”。在访问该页之前,请确保它已被编译。

当应用程序启动时,我将所需的程序集加载到当前的App域中:

代码语言:javascript
复制
AppDomain.Current.Load(...)

目前,我假设问题在于BuildManager解决名称空间/程序集引用的能力.但如果诚实的话。那是猜测:-)

有人能弄清楚这件事吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-07-29 17:08:03

您的页面必须使用完整的指定类位置-即Inherits="MyNamespace.MyClass, MyAssembly"

然后将程序集加载到appDomain中并不能帮助AppDomain解析它。它不遍历动态加载的程序集。因此,您必须订阅AppDomain.ResolveAssembly事件。

代码语言:javascript
复制
private Assembly myDynamicAssembly = null;

protected void Application_Start( object sender, EventArgs e )
{
      myDynamicAssembly = Assembly.LoadFrom( Server.MapPath( "MyLocation/MyAssembly.dll" ) );

      AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler( CurrentDomain_AssemblyResolve );
}

Assembly CurrentDomain_AssemblyResolve( object sender, ResolveEventArgs args )
{
      if ( args.Name == "MyAssembly" )
      {
           return myDynamicAssembly;
      }

      return null;
}

你就完蛋了。现在运行库知道了如何从这个动态加载的程序集解析类。

票数 2
EN

Stack Overflow用户

发布于 2009-07-29 12:27:21

可能的原因:

  1. ,如果您在.aspx页面或Global.asax页面中引用模块后面的任何代码,而web应用程序尚未构建,则会得到此错误。只需再次构建应用程序,并确保Namespace.PageClass类型可在其中一个web应用程序程序集中使用。

使用@Assembly指令在编译时将程序集链接到aspx页面。

@ Assembly Name="assemblyname“”Src=“路径名使程序集的所有类和接口都可供使用。

2.造成此错误的另一个原因可能是IIS中配置的ASP.NET版本错误。在IIS中选择正确版本的ASP.NET

单击

  1. Go开始菜单,单击Run (或者使用Win Key +R)
  2. INetMgr,然后按enter打开Information,打开显示本地计算机名称的树节点并导航到网站-->默认网站
  3. 右键单击默认网站节点并选择弹出菜单选项属性

5.导航到属性页中的ASP.NET选项卡,并设置正确的/最新版本.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1199237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档