2014-12-04 134 views
0

有几个文件处理程序我的网站使用,他们都有重复的代码。在努力收拾我创建了一个共同的基类,他们都可以继承:不明白为什么我的方法不被称为

Public MustInherit Class HandlerBase 
Implements System.Web.IHttpHandler, System.Web.SessionState.IRequiresSessionState 

Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable 
    Get 
     Return False 
    End Get 
End Property 

Public Overridable Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest 
     RequestHandler(context) 
End Sub 

Protected Overridable Sub RequestHandler(ByVal context As HttpContext) 
    Select Case context.Request.HttpMethod 
     Case "GET" 
      GetFile(context) 
     Case "POST" 
      UploadFile(context) 
     Case "DELETE" 
      DeleteFile(context) 
     Case Else 
      context.Response.ClearHeaders() 
      context.Response.StatusCode = 405 
    End Select 
End Sub 

Protected MustOverride Sub GetFile(ByVal context As HttpContext) 
Protected MustOverride Sub UploadFile(ByVal context As HttpContext) 
Protected MustOverride Sub DeleteFile(ByVal context As HttpContext) 

end class 

我处理的两个继承基类后完美地工作,但一个似乎并没有在所有火。唯一的区别是,这个处理程序重写RequestHandler:

Protected Overrides Sub RequestHandler(ByVal context As HttpContext) 
    Select Case context.Request.HttpMethod 
     Case "GET" 
      GetFile(context) 
     Case Else 
      context.Response.ClearHeaders() 
      context.Response.StatusCode = 405 
    End Select 
End Sub 

我访问处理器和的ProcessRequest永远不会在基地叫也不RequestHandler

回答

0

发现这是检查在提琴手的请求后,小错字:

Protected Overrides Sub DeleteFile(ByVal context As HttpContext 
    Throw New NotImplementedException() 
End Sub 

缺少参数的右括号。虐待投票结束这一点。

相关问题