public Controller(ListenHttpRequest request) : base(request)
 {
     if (ctrlAction == null)
     {
         ctrlAction = ViewRequest.ctrlActions;
     }
 }
 public ControllerBase(ListenHttpRequest request)
 {
     Request              = request;
     response             = new ListenHttpResponse();
     response.StatusCode  = 200;
     response.ContentType = "text/html";
     ViewData             = new ViewDataBase();
 }
 public IManageResponseMessage ManageRequest(ListenHttpRequest request)
 {
     if (_subClassList.ContainsKey(request.UrlResult.Controller))
     {
         List <MethodInfo> actions = _subClassList[request.UrlResult.Controller].GetMethods().ToList();
         object[]          construcotParameters = new object[] { request };
         object            controllerInstance   = Activator.CreateInstance(_subClassList[request.UrlResult.Controller], construcotParameters);
         foreach (MethodInfo item in actions)
         {
             if (item.Name.ToLower().Equals(request.UrlResult.Action))
             {
                 object[] actionParameters = new object[] { };
                 return((IManageResponseMessage)item.Invoke(controllerInstance, actionParameters));
             }
         }
     }
     throw new WebException(404, "未找到该页面!");
 }
        /// <summary>
        /// 处理请求和编写响应
        /// </summary>
        private void TreatmentScheme(HttpListenerContext context)
        {
            try
            {
                //客户端访问记录
                Console.WriteLine("\n客户端发出" + context.Request.HttpMethod + "请求:" + context.Request.Url);

                //封装HttpListenerRequest
                ListenHttpRequest request = new ListenHttpRequest(context.Request);

                //解析URL,获取对应的请求处理类
                IManageMessageRequest manageRequest = RequestProcess.ExecuteProcess(request.UrlResult);

                //根据不同请求处理类,获取不同的响应报文处理类
                IManageResponseMessage manageResponse = manageRequest.ManageRequest(request);

                //处理并发送响应报文
                manageResponse.ManageResponse(context.Response);
            }
            catch (Exception ex)
            {
                WebException.ErrorProcess(ex, context.Response);
            }
        }
 public IManageResponseMessage ManageRequest(ListenHttpRequest request)
 {
     return(new FileResponse(request.UrlResult["filepath"]));
 }