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

Asp.Net.Core 系列-中间件和依赖注入基础篇

2017-08-09 21:09 941 查看
好久没写博客了,打算把学习ASP.NET.Core的知识点记录下来。

.NETCore是微软推荐的新的框架,那么我们要明白,我们是基于微软专家的基础上去学习,微软专家主要做了什么?

微软专家定义了一套规范的接口,来实现客户端请求到服务器返回。我们用他们的,就要清楚这一点。进入正题:

依赖注入是什么?网上介绍的文章很多不多说,这么做主要主要是为了解耦合,使我们开发出可维护,可测试的代码和程序,说白了就是定义了一套接口,我们写一个类去继承这个接口,那么这个类就需要实现这个接口的方法(功能和属性),这就是依赖注入。

中间件是什么?再讲之前,我先问你几个基本问题?

1).Net是面向对象的,那么面向对象是什么?

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。听上去就是这样的,我的理解

是描述一个对象的解决问题的步骤中的行为和具备的属性。这个对象有一些属性和方法,就具有封装,继承,多态,抽象的特征。大学学习程序的时候,我是左耳进右耳出的,理解了

就过了,没有去深究,打好基础很重要。这里我们就拿继承来说说:

继承:C#中继承只支持单继承(既继承一个父类),但却支持多个接口。这点和java差不多(大学学的java,忘记差不多了)。为什么我要讲继承,因为我们用微软的接口,就是一个继承呀。我们去写类的时候要记住:在C#中可以通过sealed关键字来申明一个不可被继承的类,C#将在编译阶段保证这一机制。所以我们写一个类去继承微软定义的接口的时候,就可以实现微软给我们的功能 了。这里有一点很重要,继承后的执行顺序问题,请看下面的例子:









 调试运行,可以看到派生顺序是:Base → A[b] → B[b] → C[/b][/b],也验证了刚刚我们所提到的构造顺序。



上述代码的整个构造顺序如下图所示:



理解就ok。

2)什么是委托?

委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。我的理解就是动态的调用方法。我委托一个人去做一件事,也就是委托。



这就是委托,这里调用就是Invoke,当然也可以有异步的调用。

什么是中间件?用来处理发送到Pipeline中的请求,是实现应用程序委托的组件。这就是中间件。

那么我们什么时候知道请求过来呀,就是因为不知道,所以我们需要委托,当请求过来的时候,直接Invoke调用就ok了,这个委托就叫做RequestDelegate。

实现方法就是:public async Task Invoke(HttpContext context){}来实现的调用。那么在中间件实例化,可以带上日记,注入的服务等等。







如果有错误,请指出,谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: