public class HandlerFactory : IHttpHandlerFactory
{
public virtual IHttpHandler GetHandler(HttpContext context, string requestType, string virtualPath, string path)
{
context.Response.Write(requestType + "<br>");
context.Response.Write(virtualPath + "<br>");
context.Response.Write(path + "<br>");
IHttpHandler page = BuildManager.CreateInstanceFromVirtualPath("~/Class3.cs", typeof(Page)) as Page;
if (page == null)
{
return null;
}
return page;
} public virtual void ReleaseHandler(IHttpHandler handler)
{
}
}
只有标记为internal的CreateInstanceFromVirtualPath方法,而这个为pulic的CreateInstanceFromVirtualPath方法不行。运行结果为无法将类型为“System.Web.Compilation.BuildResultCompiledAssembly”的对象强制转换为类型“System.Web.Util.ITypedWebObjectFactory”。请问大侠该怎么办?
{
public virtual IHttpHandler GetHandler(HttpContext context, string requestType, string virtualPath, string path)
{
context.Response.Write(requestType + "<br>");
context.Response.Write(virtualPath + "<br>");
context.Response.Write(path + "<br>");
IHttpHandler page = BuildManager.CreateInstanceFromVirtualPath("~/Class3.cs", typeof(Page)) as Page;
if (page == null)
{
return null;
}
return page;
} public virtual void ReleaseHandler(IHttpHandler handler)
{
}
}
只有标记为internal的CreateInstanceFromVirtualPath方法,而这个为pulic的CreateInstanceFromVirtualPath方法不行。运行结果为无法将类型为“System.Web.Compilation.BuildResultCompiledAssembly”的对象强制转换为类型“System.Web.Util.ITypedWebObjectFactory”。请问大侠该怎么办?
解决方案 »
- griedview 选行问题
- 单写{}有什么用
- VS2003的出问题了,连项目都打不开了,请赐教
- 从2个表中读数据,字段名重复,怎么绑定到DataGrid?/?
- asp.net url重写
- 把一个HTML网页文件直接更改扩展名为.ASPX行不行?为什么?
- 问一个历史上最傻最傻的问题,关于用install vise 3.6做安装程序???
- 在更改了了CrystalReportViewer的ReportSource后,如何使其刷新,显示新数据?
- 怎样把客户端的Excel文件上传到服务器呢?
- 如何在.net中创建web应用程序的安装盘,或者有其他工具可以制作也可以
- MS ReportView 2010 问题
- 在框架网页下使用form认证的问题
http://msdn.microsoft.com/zh-cn/library/cc668202(VS.90).aspx
我主要是不想用Page类来处理aspx页,我想自己弄个类来处理,但为什么不行呢?2楼说的方法不是一个目的。我是看到refelctor 反编译.net框架后看到微软自己用的那段代码,不过BuildManager.CreateInstanceFromVirtualPath有两个,一个是intenal,一个是public.微软当然用的是internal Page page = BuildManager.CreateInstanceFromVirtualPath("xxxxxx", typeof(Page)) as Page;
public class PageHandlerFactory : IHttpHandlerFactory2, IHttpHandlerFactory
{
// Fields
private bool _isInheritedInstance; // Methods
protected internal PageHandlerFactory()
{
this._isInheritedInstance = base.GetType() != typeof(PageHandlerFactory);
} public virtual IHttpHandler GetHandler(HttpContext context, string requestType, string virtualPath, string path)
{
return this.GetHandlerHelper(context, requestType, VirtualPath.CreateNonRelative(virtualPath), path);
} private IHttpHandler GetHandlerHelper(HttpContext context, string requestType, VirtualPath virtualPath, string physicalPath)
{
Page page = BuildManager.CreateInstanceFromVirtualPath(virtualPath, typeof(Page), context, true, true) as Page;
if (page == null)
{
return null;
}
page.TemplateControlVirtualPath = virtualPath;
return page;
} public virtual void ReleaseHandler(IHttpHandler handler)
{
} IHttpHandler IHttpHandlerFactory2.GetHandler(HttpContext context, string requestType, VirtualPath virtualPath, string physicalPath)
{
if (this._isInheritedInstance)
{
return this.GetHandler(context, requestType, virtualPath.VirtualPathString, physicalPath);
}
return this.GetHandlerHelper(context, requestType, virtualPath, physicalPath);
}
}