话不多说了,直接最先
我们直接竖立一个完整空的asp.net web项目
不勾选任何东西。
然后,我们新增一个BaseRouteHandler,继承自(完成)IRouteHandler,代码以下
public class BaseRouteHandler:IRouteHandler { public IHttpHandler GetHttpHandler(RequestContext requestContext) { return new BaseHttpHandler(); } }
我们看到返回了一个BaseHttphandler,这是我们本身编写的
新建一个BaseHttpHandler,完成IHttpHandler,值得注重的是,假如你须要这个Handler能处置惩罚session,你只须要继承IRequiresSessionState,这个接口只是个标记,不须要任何完成
public class BaseHttpHandler:IHttpHandler { public bool IsReusable { get { return false; } } public void ProcessRequest(HttpContext context) { var request = context.Request; var response = context.Response; var method = request.HttpMethod.ToLower(); var result = string.Empty; result = string.Format("您正在要求BaseHttpHandler,要求体式格局是{0},queryStr={1}", method,request.QueryString); response.ContentType = "application/json"; response.Write(result); response.End(); } }
IHttpHander只要两个东西,一个是IsResuable,IsReusable属性,MSDN上是如许诠释的:猎取一个值,该值指导其他要求是不是能够运用 IHttpHandler 实例。也就是说后继的Http要求是不是是能够继承运用完成了该接口的类的实例,这里我们设置成false,因为我们不须要再去继承这个Handler了
别的一个是ProcessRequest,这个就是处置惩罚细致的要求,HttpContext内里包含了我们的http要求的种种参数,我们只须要对context的数据举行处置惩罚。
接见之前,我们须要注册路由
我们为顺序增加一个全局全局应用顺序类,删除除了Application_Start要领之外一切的要领,然后编写以下代码
public class Global : System.Web.HttpApplication { protected void Application_Start(object sender, EventArgs e) { RouteTable.Routes.Add(new Route("api", new BaseRouteHandler())); } }
行文到此,项目已能够一般运转了,因而我们焦急的编译运转,输入地点
注重哦,因为我们路由注册的是api,所以在我们项目地点栏以后加上/api的路由就能够一般要求到我们自定义的HttpRouteHandler内里了。
因而,我们相识到,最最基本的有三个点:
一.完成IRouterHandler,
二.完成IHttpHandler,
三.注册路由
假如你也手痒痒,那末,去完成本身的框架吧!
待续。。。
以上就是编写一个webapi框架的末尾的细致内容,更多请关注ki4网别的相干文章!