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应用的功能
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道的更多相关文章
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 05.Controller 的路由
视频地址: https://www.bilibili.com/video/av38392956/?p=5 这里面就包含了MVC相关的库 可以通过打开右侧的Nuget库进行查看 这里修改下 ,只需要静态 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 25. 过滤器
在MVC的请求管道 并不是 asp.net core的请求管道.所以说Filter是专用于MVC的 贯穿特性,横穿关注点.比如授权.日志 这里的Authorize其实就是一个Filter,主要用来授 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 02. Web Host 的默认配置
视频地址: https://www.bilibili.com/video/av38392956/?p=2 语雀 https://www.yuque.com/yuejiangliu/dotnet/ixt ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 12. Views 下
ASP.NET Core MVC 13. 安装前端库 Partial VIew 就是部分View,他没有自己的数据,数据来自图中白色的那块,它的数据需要传进去,第一个参数是View的名称,第二个参数就 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 04. 中间件
注册startup类可以配置我们web应用的启动逻辑,使用的就是UseStartUp方法,asp.net core就会实例化这个类 并调用startup类里面的两个方法ConfigureService ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 13. 安装前端库
前端库使用npm进行安装,需要先建立webpack.json文件 因为我们没有使用npm安装任何库,所以npm的文件夹是空的 这里是用于开发时构建时引用的库写在这里 这里用到bootStrap 开发时 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 27. CICD Azure DevOps
VSTS做持续集成 后来改名叫做Azure Deveps https://azure.microsoft.com/zh-cn/services/devops/ 这是中文的地址 创建一个项目 名称.描述 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 01. 创建项目 +项目结构和配置简介
新建项目:Tutotial.Web 解决方案名称可以把web去掉 视频里面把git这个选项勾选了.我就不勾选了 dotnet CLI创建项目 首先必须安装好了.net Core的SDK dotnet ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 06. Controller 返回View
Controller父类会提供很多上下文的相关信息,还提供了很多封装的方法 返回的对象要求实现了IActionResult接口 继承父类,并引入命名空间 写this点就出现很多东西,这些就是上下文的信 ...
随机推荐
- Go -- NSQ topic和channel的区别
topic:一个可供订阅的话题.channel:属于topic的下一级,一个topic可以有多个channel. 举个例子:topic:比做一个广播,如交通广播.打开收音机,你可以换很多频率,如果换到 ...
- MFC Month Calendar Control 控件使用
在上层软件编程中,往往须要提供一个月历控件让用户选择对应日期或者用此月历控件来强调特定的一天. MFC的 Month Calendar Control 控件自系统升级到 Windows 7 之后,对于 ...
- wxWidgets刚開始学习的人导引(6)——wxWidgets学习材料清单
wxWidgets刚開始学习的人导引全文件夹 PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...
- Elasticsearch 之 慘痛部署(分片移位)
部署说明 硬件 server两台: 机器A:64G内存 机器B:32G内存 分片 共12个节点 2个查询节点.10个存储节点 8个主分片 1个复制分片(每一个分片都有一个副本分布在不同的节点上面) 每 ...
- HDU 5335 Walk Out(多校)
Walk Out Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Su ...
- CSS属性中Display与Visibility的不同
大多数人很容易将CSS属性display和visibility混淆,它们看似没有什么不同,其实它们的差别却是很大的.visibility属性用来确定元素是显示还是隐藏,这用visibility=&qu ...
- 【IOS工具类】IOS9的CoreSpotlight(OC语言)
什么是CoreSpotlight?就是在IOS9下.让用户在下拉的搜索页面里能够搜索到你的应用. #import <Foundation/Foundation.h> @interface ...
- adb的那点小事——360电视助手实现研究
欢迎转载,转载请注明:http://blog.csdn.net/zhgxhuaa 1. 前言 1.1. 行业背景简单介绍 当下,智能家居与智能穿戴设备无疑是继智能手机后两个最热门的方向.而智能家 ...
- ExtJs学习笔记(1)---ExtJs安装及其使用
从官网下载了ExtJs的3.2版本号的SDK,包括了代码依赖的具体说明.文档.范例和其它文件.当中,adapter和resources文件是Ext正常执行所必须的,其它的仅在开发过程中使用到. Ada ...
- web 前端冷知识
前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前 ...