小谈startup类ConfigureServices方法的作用

简介: 小谈startup类ConfigureServices方法的作用

这个是我在面试中遇到的一道面试题,记录下来分享给大家。

简单说ConfigureServices是配置服务器的DI容器,可以添加一些服务进到依赖注入容器中。具体来说就是把中间件等添加到DI容器中,最后都是添加到IServiceCollection中,比如下面的代码:

 services.AddIdentityServer()
    .AddDeveloperSigningCredential()
    .AddInMemoryApiResources(Config.GetResource())
    .AddInMemoryClients(Config.GetClients())
    .AddTestUsers(Config.GetTestUsers())
    .AddProfileService<ProfileService>()
    .AddResourceOwnerValidator<LoginValidator>();

对于.AddProfileService()来说它已经内置了一个默认实现IProfileService接口的类,默认注入内置的DefaultProfileServer。其实里面的实现是当遇到IProfileService实例化成自定义类ProfileService,而不使用内置的。ASP.NET Core依赖注入在应用程序启动时提供服务。我们可以通过在Startup类的构造方法或Configure方法中包含适当的接口作为参数来请求这些服务。ConfigureServices方法只能接受IServiceCollection参数,但是可以从这个集合中检索任何已注册的服务,因此不需要额外参数。下面由启动方法请求的服务:

image.png

Startup类构造方法或Configure方法可以请求由WebHostBuilde ConfigureServices方法添加的任何服务。使用WebHostBuilder在启动方法中提供需要的任何服务。

目录
相关文章
|
11月前
|
数据挖掘 编译器 C#
【C#本质论 五】方法和参数
【C#本质论 五】方法和参数
48 0
为什么APF框架初始化时有两个一模一样的analyticConfiguration请求
为什么APF框架初始化时有两个一模一样的analyticConfiguration请求
为什么APF框架初始化时有两个一模一样的analyticConfiguration请求
构建“.NET研究” View 时可能用到的代理函数调用顺序
  很多时候,上海企业上海徐汇企业网站制作网站设计与制作要记住iPhone试图加载的life-cycle上海闵行企业网站设计与制作对应的代理函数是有点头疼的,特别是用Interface Buil上海徐汇企业网站设计与制作der构建界面的情况下。
602 0
|
Web App开发 前端开发 JavaScript
|
Java
深入java虚拟机学习 -- 类的卸载
类的生命周期 在开始本节之前让我们再来回顾下类的生命周期 没看过前6个过程的同学建议从头看下《深入java虚拟机学习 -- 类的加载机制》,这里就不再过多介绍了,着重说下类的卸载 类的卸载 当Sample类被加载、连接和初始化后,它的生命周期就开始了,当代表Sample类的Class对象不在被引用,即不可触及时,Class对象就会结束生命周期,Sample类在方法区内的数据也会被卸载,从而结束Sample类的声明周期。
2870 0