| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using System;
- using System.Web;
- namespace SiteCore
- {
- public class AppHandler : 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.app." + 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
- }
- }
|