using System; using System.Web; namespace SiteCore { public class WebHttpHandler : IHttpHandlerFactory { #region IHttpHandlerFactory 成员 public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated) { int len = url.LastIndexOf("/"); string fname = url.Substring(len + 1); string cname = fname.Substring(0, fname.LastIndexOf(".")); /* 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 = "SiteCore.Handler." + cname; object h = null; try { // 采用动态反射机制创建相应的IHttpHandler实现类。 h = Activator.CreateInstance(Type.GetType(className)); } catch (Exception e) { throw new HttpException("工厂不能为类型" + cname + "创建实例。", e); } return (IHttpHandler)h; } public void ReleaseHandler(IHttpHandler handler) { } #endregion } }