您现在的位置是:首页 >技术杂谈 >asp .net core6网站首页技术杂谈
asp .net core6
目录
1、 Program.cs
// 注册抽象和具体实现之间的关系(两个不同的项目相互调用)
builder.Services.AddTransient<Iservice,Serviceimp>();
// 解决中文乱码问题
builder.Services
.AddControllers(option =>)
.AddJsonOptions(options =>
options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.Preserve);
2、请求
2.1 FromService
表示来自IOC容器创建
必然需要IOC容器先注册
如果没有标记【FromService】,默认会认定这个参数是通过调用方传递
标记【FromService】不需要传递参数,由IOC容器提供
[HttpGet() ]
public string FormServiceMethod([FromService] IServiceA _ITServiceA)
{
}
2.2 FromBody
从HTTP Body中去搜索这个参数的数据,通常用于取JSON,XML
Get请求 -- 不能访问
请求API,客服端携带的参数为JSON格式,content-type:application/json
2.3 FromForm
Form表单传参
Get请求 -- 不能访问
2.4 FromHeader
Header头信息中收集这个参数的数据,如果客户端通过查询字符串方式传递参数,就是在url地址中去获取值
2.5 FromQuery
URL Query收集这个参数的数据
3、返回结果
3.1 返回指定类型
返回指定类型,如果是对象、int,默认返回JSON格式--经过序列化处理的。
如果是字符串,直接返回字符串;
3.2 返回IActionResult实例
只要是实现了IActionResult接口的,都可以做为返回值
--返回JSON
new JsonResult (object?)
--返回值可以写成
ActionResult<ApiResult<Student>>
3.3 返回泛型
3.3.1 建议返回类型
固定格式
public class ApiResult<T> where T : class
{
/// <summary>
/// Api执行成功
/// </summary>
public bool Success { get; set }
/// <summary>
/// 错误信息
/// </summary>
public string? Message { get; set }
/// <summary>
/// 结果集
/// </summary>
public T? Data { get; set }
}
4、日志记录
4.1 log4net日志记录
1、Nuget引入程序包log4net + Microsoft.Extensios.Logging.Log4Net.AspNetCore
2、准备配置文件【设置为始终复制】
3、植入log4net
builder.Logging.AddLog4Net()
4、注入log对象,写日志