ASP.NET

.Net Core 3.x MVC AOP 面向切面编程 Exc

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

AOP能在不破坏代码封装的前提下,去额外扩展功能

优点:

1. 聚焦业务逻辑,轻松扩展功能

2.代码复用,集中管理

下面开始 Filter 的例子 

1. Exception Filter  

异常过滤器:在服务器向客户端写入响应内容之前,如果系统引发了异常,异常过滤器可以捕获该异常,该过滤器作用于全局范围,这也是最常用的过滤器

新建控制器 FilterController.cs 添加 两个action 和 添加对应的视图,index 用特性 ,info 没有特性。

生成编译 -> 运行  先浏览 index -> 异常直接捕获到了

而 info 没有特性,异常直接显示在页面上。

以上是 action 的特性

接下来换成 控制器 用特性

修改 FilterController.cs 把 index 特性去掉 ,控制器用特性

生成编译 -> 运行  可以看到两个页面都捕获了

接下来再试试全局的。这样就不用改变修改控制器就能捕获异常和处理异常了

修改 FilterController.cs , 去掉控制器注册的特性

接着修改 Startup.cs , 注册 CustomExceptionFilterAttribute.cs ,就完成

这样就所有控制器异常都能捕获到,又不用修改控制器,简单的AOP就完成了


下一章《.Net Core 3.x MVC Filter 与 log4net》

上一篇 下一篇

猜你喜欢

热点阅读