模拟实现ASP.NET框架的基本功能(一)

    xiaoxiao2021-03-25  150

    //1.0 IsApiRuntime 

    namespace 小型IIS服务器

    {     /// <summary>     /// 与IIS打交道 负责接收用户向服务器发送的请求报文 并将服务器的响应报文送往IIS     /// </summary>     public class IsApiRuntime     {         /// <summary>         /// 返回服务器的响应报文         /// </summary>         /// <param name="requestMsg"></param>         /// <returns></returns>         public static byte[] ProcessRequest(string requestMsg)         {             return HttpRuntime.ProcessRequest(requestMsg);         }     }

    }

    //2.0 HttpRuntime

    namespace 小型IIS服务器 {     /// <summary>     /// asp.net 处理框架的核心     /// </summary>     public class HttpRuntime     {         public static byte[] ProcessRequest(string requestMsg)         {             //1.0 实例化HttpContext (上下文)             HttpContext context = new HttpContext(requestMsg);             //2.0 创建HttpAplication对象 对象名字为applicationInstance 以接口IHttpHandler的形式返回             IHttpHandler applicationInstance = HttpApplicationFactory.GetApplicationInstance();             //3.0 开始执行管道事件             applicationInstance.ProcessRequest(context);             return context.Response.GetResponseMessage();

            }     } }

    //3.0 HttpContext

    namespace 小型IIS服务器 {     /// <summary>     /// 负责管理用户向服务器发送的请求报文数据 以及 服务器向用户发送的响应数据 专业名词:Http上下文     /// </summary>     public class HttpContext     {         #region 0.0 构造函数         /// <summary>         /// 用户向服务器发送的请求报文         /// </summary>         private string requestMsg;         public HttpContext() { }         /// <summary>         /// 有参构造方法 将请求报文传进 并初始化上下文中的属性对象         /// </summary>         /// <param name="requestMsg"></param>         public HttpContext(string requestMsg)         {             this.requestMsg = requestMsg;             //初始化上下文中的属性对象             request = new HttpRequest(requestMsg);             response = new HttpResponse(request);             server = new HttpServerUtility();         }          #endregion         #region 1.0 Http上下文中的属性         HttpRequest request;         /// <summary>         /// 用户向服务器发送的请求报文数据         /// </summary>         public HttpRequest Request         {             get { return request; }             set { request = value; }         }         HttpResponse response;         /// <summary>         /// 服务器响应数据         /// </summary>         public HttpResponse Response         {             get { return response; }             set { response = value; }         }         HttpServerUtility server;         /// <summary>         /// 帮助类         /// </summary>         public HttpServerUtility Server         {             get { return server; }             set { server = value; }         }      #endregion         #region 2.0 RemapHandler 接收第8个事件创建好的页面对象         IHttpHandler remapHandler;         /// <summary>         /// RemapHandler 接收第8个事件创建好的页面对象         /// </summary>         public IHttpHandler RemapHandler         {             get { return remapHandler; }             set { remapHandler = value; }         }          #endregion     } }

    转载请注明原文地址: https://ju.6miu.com/read-7829.html

    最新回复(0)