美文网首页
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