我正在编写ASP.NET WEB API。
一旦执行了Action,我想调用一个方法。
例如:
public string Action1(object a)
{
// ...
// call method1();
return "sample1";
}
public string Action2(object b)
{
// ...
// call method1();
return "sample2";
}
有没有办法在每个动作中都调用method1()
而不提及每个动作?
答案 0 :(得分: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());