面试必备:ASP.Net Core 中startup 类的configservice方法的作用?
简述:
ConfigureServices ,就是配置服务器的DI容器,可以添加一些service进入依赖注入容器。
详解:
把需要的中间件等一些东西添加到DI容器 最后都是添加到IServiceCollection里面
比如
c#
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
参数(但是可以从这个集合中检索任何已注册的服务,所以不需要额外的参数)。
下面是一些通常由启动方法请求的服务:
- 在构造方法中:
IHostingEnvironment
,ILogger<Startup>
- 在
ConfigureServices
方法中:IServiceCollection
- 在
Configure
方法中:IApplicationBuilder
,IHostingEnvironment
,ILoggerFactory
Startup
类构造方法或其Configure
方法可以请求由WebHostBuilder ConfigureServices
方法添加的任何服务。使用WebHostBuilder
在启动方法中提供您需要的任何服务。