• 一个简单的ActionFilter


    [AttributeUsage(AttributeTargets.Class|AttributeTargets.Method,
    Inherited
    =true,AllowMultiple=true)]
    public class LogAttribute :FilterAttribute,IActionFilter,IResultFilter
    {
    public string LogName { get; set; }

    public void Log(string controller, string action, string msg)
    {
    if (!string.IsNullOrEmpty(LogName))
    {
    TextWriter writer
    = new StreamWriter(LogName, true);
    writer.WriteLine(
    "Time:{0}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
    writer.WriteLine(
    "Controller:{0}", controller);
    writer.WriteLine(
    "Action:{0}", action);
    writer.WriteLine(
    "Msg:{0}", msg);
    writer.WriteLine(
    "System:{0}", System.Environment.OSVersion.Version.ToString());
    writer.WriteLine(
    "ThreadID:{0}", AppDomain.GetCurrentThreadId());
    writer.Close();
    }
    }

    public void OnActionExecuting(ActionExecutingContext filterContext)
    {
    Log(filterContext.RouteData.Values[
    "controller"].ToString(), filterContext.RouteData.Values["action"].ToString(), "Action Executing...");
    }

    public void OnActionExecuted(ActionExecutedContext filterContext)
    {
    Log(filterContext.RouteData.Values[
    "controller"].ToString(), filterContext.RouteData.Values["action"].ToString(), "Action Executed.");
    }

    public void OnResultExecuting(ResultExecutingContext filterContext)
    {
    Log(filterContext.RouteData.Values[
    "controller"].ToString(),
    filterContext.RouteData.Values[
    "action"].ToString(),
    "Result executing...");
    }

    public void OnResultExecuted(ResultExecutedContext filterContext)
    {
    Log(filterContext.RouteData.Values[
    "controller"].ToString(),
    filterContext.RouteData.Values[
    "action"].ToString(),
    "Result executed");
    }

    }
  • 相关阅读:
    Aspect Oriented Programming
    jsp01
    监听器
    Java编写验证码
    servlet07
    MySQL02
    MySQL01
    Java的jdk1.6与jre1.8中存在的差异
    登陆验证和二级联动
    ajax和json
  • 原文地址:https://www.cnblogs.com/pingjiang/p/1869201.html
Copyright © 2020-2023  润新知