有没有办法调用返回IHttpHandler类型对象的System.Web.Script.Services.ScriptHandlerFactory类GetHandler方法。我知道ScriptHandlerFactory是一个内部类,但是我可以通过其他任何方式获得它吗?我说的原因是因为我想路由我的.asmx路径,路由需要这种类型的代码:
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
return new WebServiceHandlerFactory().GetHandler(HttpContext.Current,
"*",
_VirtualPath,
HttpContext.Current.Server.MapPath(_VirtualPath));
}
}
上面使用了“WebServiceHandlerFactory”,但我只想使用ScriptHandlerFactory,因为我也想使用jquery ajax调用。我将通过jquery ajax调用调用asmx方法。你能帮我这么做吗?
答案 0 :(得分:1)
借用Spring.Net。我用它来访问SimpleHttpHandler
因为我使用IoC来创建HttpHandler
s。
编辑: This is the code我曾经弄明白该怎么做。显然,它需要完全信任,而且我不喜欢这个hack,但是在创建我自己需要依赖构建的处理程序工厂时,ASP.NET并没有让我很容易做IoC -in功能。
编辑2:修正了System.Web.Services.Protocols.WebServiceHandlerFactory
的完全限定类型名称。修复了程序集搜索,从搜索位于IHttpHandler
的{{1}}到System.Web
的{{1}}。如果您有任何问题,请告诉我。
编辑3:对此抱歉。我遗漏了他们使用的WebService
课程,如果你愿意,你可以用另一种方式,但是当我这样做时,我只是直接从他们那里复制了。它用于提升和断言权限,这就是您需要完全信任的原因。
System.Web.Services