AddMvc与AddMvcCore基本说明

NetCore或者Net5,Net6等版本中注册Mvc应用,通常用有两种方法

AddMvc以及AddMvcCore

AddMvc、AddMvcCore都是IServiceCollection的扩展方法

AddMvcCore是Mvc架构下的一些核心方法,比如不需要视图或者Razor这样的模板引擎时,直接返回比如Api这一类的服务时就可以直接使用AddMvcCore。

AddMvcCore或者AddMvc通过 ApplicationPartManager 这样的方法,来获取所有的其他Dll被引用到MVC框架,通过ApplicationPartManager 来扫描所有的dll继承于Controller的所有的类,并注册到系统中。

ApplicationPartManager这个类也是插件式开发的一个核心类,通过他自动组装来自于其他插件dll中的Controller,从页形成插件体系

AddMvc常见参数说明

AddMvc最重要的MvcOption,对当前的Mvc架构进行相关的配置

最重要的包含以下几个方面

Filters:设置全局过滤器,包含授权过滤器或者异常过滤器,或者日志过滤器

ModelBinders : Model绑定设置

ModelValidatorProviders : Model检验设置

例:

Filters应用之一:绑定日志过滤器以及授权过滤器

var mvcBuilder = services
.AddMvc(o =>
{
// 启用原终端路由中止
o.EnableEndpointRouting = false;
//加上过滤器
o.Filters.Add();
o.Filters.Add();
})

其中 AdfPcExceptionActionFilter 为异常过滤器,当Controller或者View发生异常时这个过滤器将捕获异常进行统一化处理。

AdfPcLogActionFilter:为日志过滤器,用户在访问每个Controller以及Action的时候将都会记录访问日志