ASP.NET

.Net Core 3.x MVC Filter 与 log4n

2020-10-20  本文已影响0人  单程车票_SJ

特性的依赖注入

1. 特性是编译时确定的

2. 特性构造函数只能传递常量,不能传递变量

修改上一章的例子

1.全局注册

修改 CustomExceptionFilterAttribute.cs 添加 依赖注入日志

生成编译 -> 浏览 /filter/index 就直接能生成log文件了,打开log文件看到捕获到的异常

控制器又如何使用

2. ServiceFilter 

先注释之前的全局捕获,然后注册 CustomExceptionFilterAttribute 特性

然后修改 FilterController.cs

生成编译 -> 浏览 /filter/index 就直接能生成log文件了,打开log文件看到捕获到的异常(和第一步的一样操作)

3. TypeFilter 

TypeFilter 和 ServiceFilter 一样用就可以测试了

4. IFilterFactory  自定义特性

创建一个特性类 CustomFilterFactoryAttribute.cs ,实现 IFilterFactory 方法

修改 FilterController.cs 的特性 

生成编译 -> 浏览 /filter/index 就直接能生成log文件了,打开log文件看到捕获到的异常(和第一步的一样操作)

总结

ServiceFilter  IFilterFactory  TypeFilter  这三个都是基于 FilterFactory

ServiceFilter  和 IFilterFactory  基本一样

TypeFilter 可以构造参数

Filter:MVC流程,流程外处理不了(404)

中间件:任何请求最外层到达,提前做些筛选过滤工作(控制器 和 action 处理不了),不是和业务逻辑

autofac:可以深入到业务逻辑层做扩展 ,依赖注入的方法IA和IA的特性一起使用


下一章《.Net Core 3.x MVC ActionFilter》

上一篇 下一篇

猜你喜欢

热点阅读