zoukankan      html  css  js  c++  java
  • ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道

    ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道
    语雀:
    https://www.yuque.com/yuejiangliu/dotnet/olbl88
    视频地址:https://www.bilibili.com/video/av38392956/?p=3

    自定义接口对象获取信息 现在不想从配置源里面获取信息,自己写一个服务,首先弄一个接口叫做IWelcomeService

    假设接口有这么一个方法getMessage()

    那么无论是哪个对象或者服务实现了这个接口,那么我就可以从实现了该接口的对象或者服务里来获取这个信息
    把鼠标放在这,按Ctrl+.选择第一条在新的文件里面生成

    然后这个接口就声明到了这里

    这时候提示没有定义这个GetMessage方法

    还是把鼠标放在这,Ctrl+.

    x修改返回类型为string,现在就定义完了

    创建WelComeService实现该接口,然后在接口上Ctrl+.实现该接口


    接口实现完了

    返回这段字符串


    把它移动到这个文件里

    现在就是一个单独的类了

    现在接口有个实现了该接口的类也有了
    这里也调用了GetMessage()的方法

    打开命令行

    dotnet run 直接报错了

    主要的错误信息:意思就是无法找到实现了IWelcome的接口的对象

    需要注册一个服务,对应着这个IWelcomeService
    下面这两个服务都已经注册过了 是asp.net core 默认的配置,IWelcomeService是我们自己定义的接口,这个接口还没有进行注册

    ConfigureServices方法就是用来注册服务的

    这是一些预先设置的注册的服务的一些形式。

    IWelcomeService是我们自定义的,有这么这几种方式注册。
    下面使用单例模式进行注册的形式。在整个web项目的生命周期里,最多只会出现一个WelcomeService的实例

    AddTransient:每次请求,每次有其他的类或者方法请求IWelcomeService的时候,它都建立一个新的WelcomeService的实例,它
    是非常轻量级的

    AddScoped:,每次http请求,一次web请求就会生成一次实例,在这个web请求期间,如果多次请求,那么他还是使用同一个WelcomeService实例

    这里我们使用到单例模式,再次运行项目


    管道和中间件



    中间件决定如何处理这个请求,中间件其实就是一个对象,每个中间件的角色和功能都不一样,每个中间件功能都局限在特定的领域内,
    所以我们整个web应用,将会使用很多个中间件
    管道是双向设计的,一个请求进入管道会按照我添加的顺序依次进入中间件,我首先添加的是Logger,那么请求就先经过logger,下一个添加的是授权中间件,就会经过授权的中间件,最后是路由的,就会走路由的中间件
    假设路由中间价产生了一个响应,那么这个响应就原路返回,路由--授权--logger和进入的时候路径是相反的

    我们需要按照特性的顺序来设置我们的中间件组成我们的web应用的功能








     

  • 相关阅读:
    Dapper 基础用法
    测试的分类
    Python
    MySQL数据库的增删改查
    Python面向对象之
    Python面向对象之
    Python
    HTML5/CSS3/JS笔记
    Python-Flask框架之
    Python进程与线程
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/10915187.html
Copyright © 2011-2022 走看看