小谈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在启动方法中提供需要的任何服务。

目录
相关文章
|
Java 编译器 C++
C++ :类 和 对象 ※重点※(三)
C++ :类 和 对象 ※重点※(三)
68 0
|
编译器 C++
C++ :类 和 对象 ※重点※(二)
C++ :类 和 对象 ※重点※(二)
61 0
|
编译器 C++
C++ :类 和 对象 ※重点※(一)
C++ :类 和 对象 ※重点※
37 0
|
编译器 C++
c++入门学习日志 -- 类 和 对象
c++入门学习日志 -- 类 和 对象
57 0
|
数据挖掘 编译器 C#
【C#本质论 五】方法和参数
【C#本质论 五】方法和参数
53 0
|
调度
Thread 类的基本用法——一网打尽
Thread 类的基本用法——一网打尽
|
存储 安全 Java
「望仔细品读!」☕【Java原理探索】史上最清晰的探究和分析【Safe Point+Safe Region】(上)
「望仔细品读!」☕【Java原理探索】史上最清晰的探究和分析【Safe Point+Safe Region】(上)
138 0
「望仔细品读!」☕【Java原理探索】史上最清晰的探究和分析【Safe Point+Safe Region】(上)
|
算法 Java
Java常用类(4)--System类
Java常用类(4)--System类
70 0
Java常用类(4)--System类
(十八) 反射的原理是什么,反射创建类实例的三种方式是什么?
javac在这一阶段会把java代码编译为class文件,保存在硬盘中,这个文件中保存着这个类的类名、成员名、构造方法、其他方法等。
|
C# 数据库
浅谈C#中的延迟加载“.NET研究”(1)——善用委托
  很久以前就听过延迟加载这个东西,不过没有理解是什么意思,现在算是了解一二了,写点文章作为读书笔记,把自己的想法记录一下,希望对初学者帮助,不管是初学者或者高手如果发现文章那里写得不好或者有更好的思路和做法记得告诉我哦^^。
983 0