一.注入服务的三个生命周期
1.单实例服务 保证整个应用获取的对象都是同一个
2.短暂服务 每次获取都是一个新的 等价于new
3.作用域服务 保证每次请求到响应过程中获取的对象是同一个
二.什么是Asp.net Core?
asp net core是一个微软平台下的一款框架 具有很多优势 支持跨平台(部署在不同的系统上)、扩展性强(可选择需要的功能,摒弃了.net的全家桶)、高性能、模块化。
三.Asp.net Core有什么好的功能
1.提供依赖注入
2.提供日志组件
3.可以不依赖外部模块,独自运行kestrel
4.更好的支持异步编程
5.配置文件从xml变成了json
什么是meta packages?
meta packages 就是asp.net core依赖的一个包
四.什么是dot net core的startup class?
asp.net core项目启动的时候用startup来注入一些服务、中间件的。
五.说一下配置信息的优先级
自定义appsettings>命令行>环境变量>appsettings>usesetting
六.Startup class的config service方法有什么作用?
这个方法主要是完成服务的注入
七.Startup class的configure方法有什么作用?
定义请求是如何执行响应的,中间件的使用。
八.举出过滤器类型并说明作用(按顺序)
1.Authorization Filter(授权过滤器)
授权过滤器 在过滤器管道中第一个执行,通常用于验证当前请求的合法性,不合法后面的管道会直接跳过。它们只有一个Before方法,不像其它大多数过滤器支持前置阶段方法和后置阶段方法。注意,您不要在授权过滤器中抛出异常,因为没有任何代码来处理异常(异常过滤器不处理它们)。
2.Resource Filter(资源过滤器)
资源过滤器是第二个运行,在 Authorization Filter 之后,Model Binding 之前执行。在性能方面,资源过滤器在实现缓存或截断过滤器管道尤为重要。
3.Action Filter(调用action之前的控制器)
和Resource Filter类似 但是在Model binding之后执行
4.Result Filter (在响应之前执行的过滤器)
可以对返回接口进行统一处理
5.Exception Filter(异常过滤器)
监听除授权之后出现异常的过滤器
九.如果存在多个过滤器 它们执行的顺序如何
默认情况下 全局过滤器优先于控制器过滤器,控制器过滤器优先于Action方法过滤器。
十.如何覆盖过滤器执行的顺序
通过实现IOrderedFilter 根据order的大小来改变执行顺序 order越小执行顺序越靠前 如果order是0 则按默认的执行
十一.TypeFilter 和ServiceFilter 的区别。
- ServiceFilter和TypeFilter都实现了IFilterFactory
- ServiceFilter需要对自定义的Filter进行注册,TypeFilter不需要
- ServiceFilter的Filter生命周期源自于您如何注册,而TypeFilter每次都会创建一个新的实例
十二.IOptions的作用
方便使用强类型配置,不需要在去序列化。
十三.IConfiguration的作用
提供读取appsettings.json文件信息
十四.IHostingEnvironment的作用
获取基本环境信息
十五.如何在dot net core中激活session功能?
首先要添加session包. 其次要在config service方法里面添加session。然后又在configure方法里面调用usesession。
十六.ASP.NET Core管道里面的map拓展有什么作用?
可以根据不同的路径,制定不同的中间件。