IHttpHandler工廠
class TestHandlerFactory : IHttpHandlerFactory {public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated){string fname = url.Substring(url.IndexOf('/') + 1);while (fname.IndexOf('/') != -1)fname = fname.Substring(fname.IndexOf('/') + 1);string cname = fname.Substring(0, fname.IndexOf('.'));string className ="";className = "ClassLibrary831.CodeHandler";object h = null;try{//h = new TestHandler();h = Activator.CreateInstance(Type.GetType(className));}catch (Exception e){throw new HttpException("工廠不能為類型" + cname + "建立執行個體。", e);}return (IHttpHandler)h;}public void ReleaseHandler(IHttpHandler handler){} }(車延祿) |
設定檔
<httpHandlers><add verb="*" path="default21.aspx,default22.aspx" type="ClassLibrary831.TestHandlerFactory,ClassLibrary831"></add> </httpHandlers> |
這樣TestHandlerFactory就會根據請求的不同頁面執行不同的HttpHandler處理常式了。
HttpHandler使用會話
如果要在處理常式中使用Session,那必須把該HttpHandler實現IRequiresSessionState介面,,IRequiresSessionState介面是個空介面,它沒有抽象方法,只是一個標記。此處就不作例子驗證了