美文网首页
ASP.net mvc 里的AOP

ASP.net mvc 里的AOP

作者: 丶End | 来源:发表于2019-08-27 09:53 被阅读0次

nhibernate和ef
不同映射框架

大一点的项目总会有相关的AOP面向切面的组件,而MVC(特指:Asp.Net MVC,以下皆同)项目中Action在执行前或者执行后我们想做一些特殊的操作(比如身份验证,日志,异常,行为截取等),而不想让MVC开发人员去关心和写这部分重复的代码。那么,我们可以通过AOP截取实现,而在MVC项目中我们就可以直接使用它提供的Filter的特性帮我们解决,不用自己实现复杂的AOP了。
https://www.cnblogs.com/niouxiaopei/articles/4372571.html

https://www.cnblogs.com/pophis/p/4349622.html

image.png
namespace Filters
{
    public class LogAop : ActionFilterAttribute
    {
        public LogAop(string queryCondition)
        {
            this._queryCondition = queryCondition;
        }

        string _queryCondition;

        /// <summary>
        /// 执行后
        /// </summary>
        /// <param name="filterContext"></param>
        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {            
            var LoginId = filterContext.HttpContext.Request.Cookies["LoginInfo"]["LoginId"];
            _queryCondition += HttpUtility.UrlDecode(filterContext.HttpContext.Request.QueryString.ToString());
            log.Info(DateTime.Now.ToString() + " " + LoginId + " " + _queryCondition);//写入一条新log
        }

        /// <summary>
        /// 执行前
        /// </summary>
        /// <param name="filterContext"></param>
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
        }
    }
}

相关文章

网友评论

      本文标题:ASP.net mvc 里的AOP

      本文链接:https://www.haomeiwen.com/subject/vwmssctx.html