摘要:在根据请求解析出匹配的Controller类型并创建实例后,要在该Controller类型中的众多Action方法中选择与请求匹配的那一个,并执行,然后返回响应。 Action方法,其元数据,主要包括,ActionName,参数列表,返回类型,支持的方法,应用其上的特性,如过滤器,HttpMetho
        
阅读全文
 
    
        
        
摘要:position 属性指定了元素的定位类型。 position 属性的四个值: static 不设置默认为该值,即没有定位,元素出现在正常的流中。不能使用top,bottom,left,right和z-index。 relative 是相对其正常位置,它原本所占的空间不会改变,经常被用来作为绝对定位
        
阅读全文
 
    
        
        
摘要:我们通常设置的宽度和高度,是指盒子模型中内容(content)的宽度和高度。元素的高度,还要加上上下padding和上下border,元素整个盒子的高度还要加上上下margin;宽度类似计算。 注意: 父子元素包含情况下的计算,父亲元素会把儿子元素的整个盒子(包括margin)的大小作为内容。 外边
        
阅读全文
 
    
        
        
摘要:块元素:单独占一行,宽度占整行,可以包含内联元素和其他块元素,通过样式display:inline,变为行内元素,不换行 内联元素:不单独占一行,宽度根据内容来决定,只能容纳文本或者其他内联元素 ,可以通过样式display:block,使其单独占一行,但是不能包含块元素,不能设置width, he
        
阅读全文
 
    
        
        
摘要:最小高度,无论什么时候,高度不会小于该值,即使内容很少,不限制高度最大值,超出时候,按照实际内容来决定高度 最大高度,无论什么时候,高度不会大于该值,即使内容很多,不限制最小高度,超出时候,多出部分会撑出元素外边 例子1,内容很少, min-height:60px max-height:60px h
        
阅读全文
 
    
        
        
摘要:body高度100%,三个image高度分别为auto,50%,60%,imge高度为当时body高度的百分比,auto时为原始高度 html代码如下: 运行结果
        
阅读全文
 
    
        
        
摘要:1、样式优先级 (内联样式)Inline style > (内部样式)Internal style sheet > (外部样式)External style sheet > 浏览器默认样式 <p style="width:10px"> 页面内<style></style> 引用外部样式文件 2、 选
        
阅读全文
 
    
        
        
摘要:Chrome开发者工具不完全指南(一、基础功能篇)Chrome开发者工具不完全指南(二、进阶篇)Chrome开发者工具不完全指南:(三、性能篇)Chrome开发者工具不完全指南(四、性能进阶篇)Chrome开发者工具不完全指南(五、移动篇)Chrome开发者工具不完全指南(六、插件篇) https:
        
阅读全文
 
    
        
        
摘要:我们知道项目中创建的Controller,如ProductController都继承自ApiController抽象类,其又实现了接口IDisposable,所以,框架中自动调用Dispose方法来释放其资源。在代表请求的HttpRequestMessage属性字典中,有个Key,“Ms_Dispo
        
阅读全文
 
    
        
        
摘要:现在我们从代码角度来看下,从消息处理管道末尾是怎么创建出Controller实例的。消息处理管道末端是一个叫HttpRoutingDispatcher的处理器,其内部完成路由后 ,会把消息派送给其内部的一个消息处理器HttpControllerDispatcher来完成Controller实例创建。
        
阅读全文
 
    
        
        
摘要:上一篇介绍了HttpController的一些细节,接下来说下HttpController 类型解析、选择和创建。生产HttpController实例的生产线如下图: 一、涉及的类及源码分析 涉及的类主要在程序集System.Web.Http中的Dispatcher下边,类如下图: 1、IAssem
        
阅读全文
 
    
        
        
摘要:对请求进行路由解析以及消息处理管道进行处理后,最后可以从HttpRequestMessage对象的属性字典中获取解析的路由数据,后边我们就可以根据其进行HttpController的创建,从前边几篇可知道,消息处理管道的末端即最后一个处理器HttpRoutingDispatcher会把消息派送给其一
        
阅读全文
 
    
        
        
摘要:一、概念 1、IoC(Inversion of Control),控制反转 即将依赖对象的创建和维护交给一个外部容器来负责,而不是应用本身。如,在类型A中需要使用类型B的实例,而B的实例的创建不是由A负责,而是由外部容器来创建。 2、DI(Dependency Injection),依赖注入 即外部
        
阅读全文
 
    
        
        
摘要:ServicesContainer是一个服务的容器,可以理解为—个轻量级的IoC容器,其维护着一个服务接口类型与服务实例之间的映射关系,可以根据服务接口类型获取对应的服务实例。构成ASP.NET Web API核心框架的消息处理管道的每个环节都注册了相应的组件来完成某项独立的任务,这些 “标准化 ”
        
阅读全文
 
    
        
        
摘要:Self Host模式下的ASP.NET Web API与WCF非常相似,都可以寄宿在任意类型的托管应用程序中,宿主可以是Windows Form 、WPF、控制台应用以及Windows Service,寄宿的请求的监听、接收 和响应功能,是通过一个类型为HttpBinding的Binding对象创
        
阅读全文
 
    
        
        
摘要:寄宿的作用是开启一个进程为Web API提供一个运行环境以解决持续监听、请求监听和响应回复,即将接收到的请求转换成HttpRequestMessage对象传入管道,并将管道生成并经过处理后的HttpResponseMessage回复给客户端。寄宿模式分两种,即Web Host模式和Self Host
        
阅读全文
 
    
        
        
摘要:ASP.NET Web API 的核心框架是一个由一组HttpMessageHandler有序组成的双工消息处理管道;寄宿监听到请求接受后,把消息传入该管道经过所有HttpMessageHandler处理后,目标HttpController会被激活,对应Action方法被执行,生成响应消息也会进入管
        
阅读全文
 
    
        
        
摘要:Web Host 模式下的路由本质上还是通过ASP.NET 路由系统来进行路由的,只是通过继承和组合的方式对ASP.NET路由系统的内部的类进行了一些封装,产生自己专用一套类结构,功能逻辑基本都是一样的。 简单的概括起来,Web Host模式下的ASP.NET Web API在Web应用中注册的路由
        
阅读全文
 
    
        
        
摘要:ASP.NET Web API 核心框架是一个独立的、抽象的消息处理管道,ASP.NET Web API有自己独立的路由系统,是消息处理管道的组成部分,其与ASP.NET路由系统有类似的设计,都能找到对应的类,虽然有一定区别,基本都是面向接口的,而且命名都以Http开始的,但是,其主要辑基本都一样。
        
阅读全文
 
    
        
        
摘要:ASP.NET Web API 如果采用Web Host方式来寄宿,在请求进入Web API 消息处理管道之前,就会用ASP.NET 自身的路由系统根据注册的路由表,解析出当前请求的HttpController和Action的名称,以及与目标Action方法某个参数进行绑定的路由变量。 ASP.NE
        
阅读全文
 
    
        
        
摘要:一、ASP.NET Web API接口定义 ASP.NET Web API默认实现了Action方法和HTTP方法的映射,Action方法方法名体现了其能处理的请求必须采用的HTTP方法 二、寄宿方式 ASP.NET Web API的寄宿为其提供运行环境,提供请求的接受和响应的回复功能,寄宿接收请求
        
阅读全文
 
    
        
        
摘要:MVVM是一种前端框架模式,框架模式主要是用来管理与组织代码,在复杂应用中,利用高内聚低耦合的思想,将代码分离组织到不同部分,每部分都有其关注点和职责,各部分间耦合度低,达到“关注点分离”目的,使整个应用更易管理、维护,每个部分可以单独更新、替换以及复用,从而达到整个应用的模块化。 一、概念 MVV
        
阅读全文