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

目录
相关文章
|
7月前
|
Java
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
|
7月前
|
C++
C++:类的补充知识
C++:类的补充知识
37 0
|
编译器 C++
C++ :类 和 对象 ※重点※(一)
C++ :类 和 对象 ※重点※
48 0
|
编译器 C++
C++ :类 和 对象 ※重点※(二)
C++ :类 和 对象 ※重点※(二)
76 0
|
Java 编译器 C++
C++ :类 和 对象 ※重点※(三)
C++ :类 和 对象 ※重点※(三)
83 0
|
Java
编写Java程序,定义士兵类(Soldiers)并初始化5个士兵对象。
编写Java程序,定义士兵类(Soldiers)并初始化5个士兵对象。
363 0
|
Java 数据库
再生与终结-初识属性覆盖与final | 带你学《Java面向对象编程》之四十一
本节将为读者介绍属性覆盖和final关键字相关内容,并为读者展示如何在Java中定义一个“常量”。
|
索引
对抽“.NET研究”象编程:接口和抽象类
  1. 引言   在我之前的一篇post 《抽象类和接口的谁是谁非 》中,和同事管伟的讨论,得到很多朋友的关注,因为是不成体系的论道,所以给大家了解造成不便,同时关于这个主题的系统性理论,我认为也有必要做以总结,因此才有了本篇的新鲜出炉。
875 0