zoukankan      html  css  js  c++  java
  • Asp.Net.Core 系列-中间件和依赖注入基础篇

    好久没写博客了,打算把学习ASP.NET.Core的知识点记录下来。

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

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

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

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

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

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

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

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

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

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

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

     理解就ok。

    2)什么是委托?

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

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

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

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

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

    如果有错误,请指出,谢谢。

  • 相关阅读:
    Spring有用功能--Profile、WebService、缓存、消息、ORM
    opencv标定程序(改动)
    Install Docker Mac OS X
    Android eclipse 提示java代码 快捷键
    Mac使用Docker-machine訪问docker publish port
    决策树之C4.5算法学习
    为ImageView设置背景图片(代码中)
    BZOJ 3675 APIO2014 序列切割 斜率优化DP
    思科模拟器之路由器-RIP-DNS解析server
    POJ 3177 Redundant Paths
  • 原文地址:https://www.cnblogs.com/jristy/p/7327731.html
Copyright © 2011-2022 走看看