3

我正在编写一个 ASP.NET WEB API。

一旦执行了动作,我想调用一个方法。

例如:

 public string Action1(object a)
 {
     // ...
     // call method1();
     return "sample1";
 }

 public string Action2(object b)
 {
     // ...
     // call method1();
     return "sample2";
 }

有没有一种方法可以调用method1()每一个动作而不在每一个动作中提及?

4

1 回答 1

8

您可以在内部实现自定义System.Web.Http.Filters.ActionFilterAttribute和调用:method1()OnActionExecuted(...)

public class MyActionFilter : System.Web.Http.Filters.ActionFilterAttribute
{
    public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
    {
        // call method1();
        // ...
        base.OnActionExecuted(actionExecutedContext);
    }
}

然后,您可以[MyActionFilter]在操作、控制器上使用它,或将其添加到全局配置中WebApiConfig.cs

        config.Filters.Add(new MyActionFilter());
于 2012-11-28T19:19:09.457 回答