路由接口
跨域
//添加跨域设置
// 添加策略(解决同源跨域问题) 允许所有的头部请求 Cors是自己定义
builder.Services.AddCors(cor =>
{
cor.AddPolicy("Cors", policy =>
{
policy.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod();
});
});
var app = builder.Build();
//添加跨域设置
app.UseCors("Cors");
默认页面配置成swagger页
返回值类型
· 特定类型
· IActionResult 返回状态码
· ActionResult 返回状态码和数据模型(类型)
Minimal APIs
app.MapGet
app.MapPost
app.MapPut
app.MapDelete
方法其实就是一个委托,委托本质就是一个方法
路由约束
路由约束限制路由的匹配规则
app.MapGet("/{id:regex(^[a-z0-9]+$)}", delegate(string id) {return id;});
依赖注入
IOC: Inversion of control 控制反转
依赖注入是实现控制反转的一种手段或方式
DI:Dependency Injection
应用程序‘依赖’IOC容器
应用程序需要IOC容器来提供对象需要的外部资源
将应用程序依赖的某个对象注入到IOC容器中
注入的就是某个对象需要的外部资源(包括对象、资源、常量数据)
IOC容器:在ASP NET Core6中指的是 ServiceCollection -> 服务收集器
在Minimal APIs 里也可以使用注入的类
报错记录:Unable to resolve service for type: ... 就是没有注册
服务生命周期
Transient 瞬时生命周期:每次使用的时候都会new一个对象
Singleton 单例生命周期:只需在第一次时new
Scoped 作用域生命周期: 线程单例,每次请求就是一个线程
指令
ctor:快速创建函数
Autofac框架的使用
安装:在nuget插件中进行包的安装
-
使用*
报错
不明确的HTTP操作方法 方法属性错误
// private 写成了 public
private bool Check()
{
return true;
}
Filter过滤器
AOP:面向切面编程
filter就是实现AOP的一种方式
在ASP.NET Core中的五大filter:
-
AuthorizationFilter 授权过滤器 -
IResourceFilter 资源管理过滤器 -
IActionFilter 行为过滤器(模型验证、日志记录) -
IExceptionFilter 异常过滤器 -
IResultFilter 结果过滤器
Filter的创建和使用:
过滤器管道
Filter注册方法
顺序:全局--> 类 --> 方法
方法注册(action)
自定义的属性框架是不认识的,需要继承自框架中的接口
AuthorizationFilter的执行是在控制器构造之前执行的
ResourceFilter的执行是在控制器构造之前执行的
特性: 只能在该方法内使用
类注册(控制器)
特性:在类中的方法都可以使用,而且会线执行类中的filter