> 文章列表 > asp .net core6

asp .net core6

asp .net core6

目录

 Program.cs

请求

FromService

FromBody

FromForm

FromHeader

FromQuery

返回结果

返回指定类型

返回IActionResult实例


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对象,写日志