Nancy.Owin框架理解

Nancy.Owin框架我这里不在赘述了,借用园子Leo_wlCnBlogs的帖子标题来展示吧

Nancy简介

Nancy是一个轻量级的独立的框架,下面是官网的一些介绍:

  • Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽可能多的方式,并提供一个super-duper-happy-path所有交互。
  • Nancy 设计用于处理 DELETEGETHEADOPTIONSPOSTPUT和 PATCH 等请求方法,并提供简单优雅的 DSL 以返回响应。让你有更多时间专注于你的代码和程序。

官方地址:http://nancyfx.org   GitHub:https://github.com/NancyFx/Nancy

发这篇文章的主要目的是去年学习的Nancy结果也没有备份啥的,结果今天再一看怎么也想不起来了,发一篇文章给自己做一个备份,当然也想通过这个分享可以从园子里学习到更多的东西

本篇文章不讲解Nancy的使用规则,更偏重源代码的分析,当然个人分析能力尚浅,如有不妥,还请指出

本篇写的是Nancy的约定方法分析,本代码使用的Nancy版本为1.4.2

Nancy约定主要接口为:IConvention

实现当前接口的约定类有四个分别为:DefaultViewLocationConventions,DefaultStaticContentsConventions,DefaultAcceptHeaderCoercionConventions,DefaultCultureConventions

当然这些约定可以自定义的

约定用相对应的类来调取,那就是NancyConventions类,下面是展示源码部分

NancyConventions的约定的大类在Nancy框架初始化时,在NancyBootstrapperBase类中实例化

实例化之后的NancyConventions又做了什么呢?我们看一下NancyConventions的代码,它调用了一个叫BuildDefaultConventions的方法

我们来看看这个方法的代码

没错,这个方法反射加载了所有的实现IConvention接口的方法类,之后调用了这些接口的Initialise的方法进行初始化,把自己作为参数进行初始化之后NancyConventions就将自己的那几个约定集合进行了初始化

DefaultCultureConventions类初始化方法

DefaultViewLocationConventions类初始化方法

DefaultStaticContentsConventions类初始化

DefaultAcceptHeaderCoercionConventions类初始化

 

 资源类以及视图类需要特别注意,Nancy增加了默认的路径,如果这些资源在这些路径下查找不到则不能显示,好在Nancy增加了一个方法在继承DefaultNancyBootstrapper可以调用这些约定集合进行添加,例如例子上的添加静态资源方法

 

每一个约定都有它的创建者以及执行者

后续会增加每一个具体的约定类的使用规则

 

posted @ 2017-03-14 13:39  风一样的战士  阅读(64)  评论(0)    收藏  举报