ASP.NET Core 3框架揭秘 10

news/2025/3/3 22:10:57/文章来源:https://www.cnblogs.com/zyblogs/p/18689359

IHostBuilder  IHost  IHostService  IHostApplicationLifetime

 

WebApplication ==> createbuilder创建了一个新的new WebApplicationBuilder。

WebApplicationBuilder里的初始话方法中,首先会创建一个HostApplicationBuilder对象,HostApplicationBuilder主要用于表示一个Host Application和Service builder用来管理configuration, logging, lifetime等等信息。WebApplicationBuilder里首先会创建ConfigurationManager管理配置,Initialize相关配置,并且通过HostBuilder相关静态方法创建HostBuilderContext,在通过HostBuilder里的PopulateServiceCollection静态方法注册ServiceCollection依赖注入容器需要注册的类型等信息,包括IHost对象,这也是最后WebApplication.Run启动的承载系统,并且向Host构造方法依赖注入的根容器ServiceProvide人的委托方法,,这个委托方法在HostApplicationBuilder中实现

 

 

 

 

 

 

 

 

 

ASP.NET Core 应用针对服务生命周期管理的实现原理其实也很简单。在应用程序正常启动后,它会利用注册的服务创建一个作为根容器的 IServiceProvider 对象,我们可以将它称为ApplicationServices。如果应用在处理某个请求的过程中需要采用依赖注入的方式激活某个服务实例,那么它会利用这个 IServiceProvider对象创建一个代表服务范围的 ServiceScope对象,后者会指定一个 IServiceProvider 对象作为子容器,请求处理过程中所需的服务实例均由它来提供,我们可以将它称为RequestServices。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/892312.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vitepress+EdgeOne Pages快速迁移旧网站内容

本文详细记录使用Vitepress+腾讯云EdgeOne Pages迁移旧网站内容的过程。Vitepress+EdgeOne Pages快速迁移旧网站内容 目录Vitepress+EdgeOne Pages快速迁移旧网站内容下载旧网站文章、图片网站文章转MarkdownVitepress项目快速开始EdgeOne Pages零帧起手参考材料 去年在阿里云码…

记录:tinyrenderer

Bresenham’s line drawing(布雷森汉姆算法) 进行games101的光栅化作业时,对其渲染原理仍不甚了解,找到tinyrenderer软光栅项目。在此记录下试错的过程。 作者在最初为我们做好了framebuffer,读者入手的方向实际是从渲染的过程开始。对于如何渲染出像素显示在画面上,应该需…

2025-2-28-媒体查询

媒体查询示例 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=devi…

Sunshine Moonlight 串流 再玩一把

前言 其实我已经配置好了,目前的配置是不过我额外安装vdd是因为基地版自带的那个显示屏有点问题。 只不过我自己也忘了有什么问题了。 但是现在什么?有更新? 更新来玩玩。 博主能这样随便更新,是因为这个软件不怎么用,而且喜欢折腾才这样做的,如果经常需要使用建议是稳定…

牛客 周赛82 20250227

牛客 周赛82 20250227 https://ac.nowcoder.com/acm/contest/102303 A: 题目大意:给定字符串 \(s\) ,判断首尾是否相同 #include<bits/stdc++.h> #define cintie ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define Trd int T;cin>>T;while (T--)sol…

002搜索框-搜索功能的实现

1、设置js的data值 给Zcpmingxi一个测试值 2、把 sousuo这个名字 绑定到wxml里面的 搜索框上 <inpu/>         是一个搜索框标签 type="text"        表示格式是文本格式 value="{{sousuo}}"    …

Spring面试知识

Spring优点 1.通过控制反转和依赖注入实现低耦合 2.面向切面编程,将业务逻辑和系统功能区分开来(日志记录、事务管理、安全性) 3.切面和模板可以减少板式代码 4.声明式事务的支持(@Translation)可以实现对事务代码的灵活管理,提高代码的质量和效率 5.多种内置的框架(Mybaties…

GVIM环境配置记录

背景 GVIM只用自带安装的软件,可以完成文本编辑的功能,不过很多开发者编写了很多插件,配合这些插件来做文字代码编辑,能很好地提高速度与效率 GVIM的配置环境,装机后只配置一次,很容易忘记,下次重装系统或者配新机时,又要重新查找相关资料 这里做一次记录,方便后续重新…

VIM环境配置记录

背景 VIM只用自带安装的软件,可以完成文本编辑的功能,不过很多开发者编写了很多插件,配合这些插件来做文字代码编辑,能很好地提高速度与效率 VIM的配置环境,装机后只配置一次,很容易忘记,下次重装系统或者配新机时,又要重新查找相关资料 这里做一次记录,方便后续重新配…

endnote 基础使用

因为工作的原因,综述格式统一使用endnote。一小时速成,可以满足基础的综述引用。 安装 安装的是endnote 21,这个界面感觉比较简洁。 EndNote 21 的安装包中有汉化补丁 "D:\Program Files (x86)\EndNote 21\安装包\Crack\汉化补丁.exe" 2024-11-18 Endnote21更新-…

Day1-Markdown学习笔记

MarkDown学习 标题 一个#然后空格加内容是一级标题,两个是二级标题,三个是三级标题 字体 hello world hello world *** hello world*** hello world 一对*加上内容是斜体,两对是加粗,三对是既加粗又斜体, 一对~是加横线,就是废弃的意思 引用引用别人的内容一个> 加…

2025-03-02 闲话

2025-03-02 闲话走进这里时,求是园欢迎您。离开时,它会说,再见。昨天十一点,从这里走上蒋墩路,过了马路,是夜晚的学军。周末不再灯火通明,只剩下校门口的主灯,照亮着蓝色匾额的威严。昨天发了点牢骚,2023 年时进这个校园,不需要预约,刷脸时能发现不只一个我在这里的…