您的位置:首页 > 编程语言 > ASP

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

2017-03-08 23:34 429 查看
//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

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  asp.net 框架 c#
相关文章推荐