1.ApiController特性作用:
(1)自动推导数据是什么类型,例如将控制器所传参数类型为frombody,formrouter,这个特性就是用于推导这些的
(2)加了apicontroller,必须加route路由,要不然会报错
2.ref和out的区别
ref是将值类型可以像引用类型那样,在方法间传递时,值发生改变,值类型不加ref,则传递后,原方法的值并不发生改变,当然也可以传引用类型,例如类等
out是将方法中的值作为参数返回到原方法中,可以定义一个可返回的参数,out可以在传参时定义变量,out在被调用的方法中必须赋值,否则编译器会报错
3.wwwroot在webapi中的使用
首先介绍一下MVC的wwwroot路径获取方法:
在当前方法中构造函数直接注入IWebHostEnvironment environment
var contentPath = environment.ContentRootPath;//获取当前程序的本地路径
var webRootPath = environment.WebRootPath;//获取wwwroot的路径
webapi的方法
在program引入中间件app.UseStaticFiles();
然后使用方法和mvc方法一样,如果不加静态文件中间件,可以正常获取wwwroot文件夹路径,但是会造成你的mvc项目无样式,
但是对于webapi来说,现在一般都是前后端分离项目,静态文件一般不会放在后端,所以webapi启用静态文件中间件,完全是无意义的,
如果当前项目中没有wwwroot文件夹的话,输出wwwroot文件夹路径为null
注意:如果你当前wwwroot文件夹没设置为始终复制的话,你执行某些接口用到这个文件夹时,会报错