在我的System.Web.Mvc Action过滤器中,我以前使用TempData来存储我的unitOfWork服务的实例,如下所示:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.Controller.TempData[UnitOfWorkRequestKey] = UnitOfWork;
UnitOfWork.Begin();
}
Run Code Online (Sandbox Code Playgroud)
然后提交事务我从像这样的临时数据中检索它.
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
var unitOfWork = (IUnitOfWork)filterContext.Controller.TempData[UnitOfWorkRequestKey];
try
{
if (filterContext.Exception == null)
{
unitOfWork.Complete();
}
}
finally
{
unitOfWork.Dispose();
filterContext.Controller.TempData[UnitOfWorkRequestKey] = null;
}
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
在System.Web.HttpWeb Api Action Filter(使用HttpActionContext)中 - 是否有一个等效的位置来存储我的服务实例,所以我可以在执行该操作时检索相同的实例?