摘要: 接 上一篇 内容, 这里先看一下错误处理过滤器. 在看此部分之前, 先看看MVC已经提供的功能吧. 一. MVC 自带功能 1. 配置方法 这里的mode默认是 Off , 就是会在页面中直接显示详细的错误信息. 如果是 On, 则不会显示详细的错误信息, 显示是这样的: 在没有配置具体 statu 阅读全文
posted @ 2017-01-19 10:53 Sniper_ZL 阅读(475) 评论(0) 推荐(0) 编辑
摘要: 从 上一篇 其实能看到, 程序执行的过滤器, 有四种 : 过滤器类型 接口 描述 Authorization IAuthorizationFilter 此类型(或过滤器)用于限制进入控制器或控制器的某个行为方法 Exception IExceptionFilter 用于指定一个行为,这个被指定的行为 阅读全文
posted @ 2017-01-18 16:26 Sniper_ZL 阅读(6698) 评论(0) 推荐(0) 编辑
摘要: 接着上一篇, 在创建好Controller之后, 有一个 this.ExecuteCore()方法, 这部分是执行的. 那么里面具体做了些什么呢? 来看一下这里的 ExecuteCore具体是执行的那里的方法. 这个类应该还是蛮熟悉的吧, 我们创建的控制器类, 都会直接或者间接继承这个类. 一、解析 阅读全文
posted @ 2017-01-17 16:04 Sniper_ZL 阅读(1052) 评论(0) 推荐(0) 编辑
摘要: 上一篇, 出现了一个至关重要的类:MvcHandler, 接下来就来看一下MvcHandler吧. 先不看具体方法, 先看一下类里面的情况. 从上面看, 有两种执行方式, 一种是同步的, 一种是异步的. 那默认情况下, 其实会走异步的方式. 但是这里呢, 我想用同步的方式去分析, 其实过程原理都是一 阅读全文
posted @ 2017-01-16 16:05 Sniper_ZL 阅读(732) 评论(0) 推荐(0) 编辑
摘要: 上一篇 说到了路由事件注册以及路由表的生成, 前面 也解析到了, 管道事件的建立, 那么接下来, 肯定就是要调用执行这些事件了, 这些就不表了, 我已经得到我想要的部分了, 接下来, 在执行这些管道事件的时候, 肯定就会执行到之前 UrlRoutingModule注册的方法. 接下来, 就看一下, 阅读全文
posted @ 2017-01-13 13:19 Sniper_ZL 阅读(1004) 评论(1) 推荐(1) 编辑
摘要: 从前面篇章的解析, 其实能看的出来, IHttpModule 可以注册很多个, 而且可以从web.config注册, 可以动态注册. 但是有一个关键性的Module没有讲, 这里就先来讲一下这个关键性的Module -- UrlRoutingModule 来看一下他的Init方法, 注册了什么进去. 阅读全文
posted @ 2017-01-12 14:19 Sniper_ZL 阅读(1833) 评论(0) 推荐(0) 编辑
摘要: 先看一张图, 从这张图里, 能看到请求是如何从CLR进入HttpRuntime的. 一、AppManagerAppDomainFactory 看到这张图是从 AppManagerAppDomainFactory 开始的, 按照汤姆大叔博文中所说, 是在CLR初始化加载的时候, 来加载这个类的. 那么 阅读全文
posted @ 2017-01-11 18:57 Sniper_ZL 阅读(2058) 评论(0) 推荐(0) 编辑
摘要: 上一篇说到了创建 HttpApplication 对象出来(就是上面这句话了), 那么在创建对象的时候, 做了些什么事情呢, 是不是只是创建了对象而已呢, 继续分析. 1. 先来看一下EnsureInited方法, 看看里面做了些什么. 加锁的方式, 初始化了一些东西, 但是从这里并不能看出是初始化 阅读全文
posted @ 2017-01-11 18:57 Sniper_ZL 阅读(846) 评论(0) 推荐(0) 编辑
摘要: 本来这一篇, 是要继续 Pipeline 的, 但是在 Pipeline之前, 我看到了InitModules()方法, 所以决定, 在中间穿插一篇进来. 这一篇来讲一下 IHttpModule 的加载时机, 以及怎么动态注册 HttpModules. 一. 经典模式下的 InitModules 方 阅读全文
posted @ 2017-01-11 18:57 Sniper_ZL 阅读(947) 评论(0) 推荐(1) 编辑
摘要: 接上一篇, 我在 HttpModule 的Init方法中, 添加了自己的事件, 在Pipeline里, 就会把握注册的事件给执行了. 那么Pipeline是如何执行并且按照什么顺序执行的呢? 现在我们重新回到HttpApplication.InitInternal()方法中来. 注: Integra 阅读全文
posted @ 2017-01-11 18:57 Sniper_ZL 阅读(705) 评论(0) 推荐(0) 编辑