私の System.Web.Mvc アクション フィルターでは、以前は TempData を使用して unitOfWork サービスのインスタンスを次のように格納していました。
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.Controller.TempData[UnitOfWorkRequestKey] = UnitOfWork;
UnitOfWork.Begin();
}
次に、トランザクションをコミットするために、このような一時データから取得しました..
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;
}
}
私の質問は次
のとおりです: System.Web.Http
Web Api アクション フィルター (を使用HttpActionContext
) では、サービスのインスタンスを格納する同等の場所があるので、アクションが実行されたときに同じインスタンスを取得できますか?