用动作包围一个函数

时间:2016-12-05 09:20:26

标签: c# asp.net design-patterns asp.net-core

我正在开发一个Asp.net MVC应用程序,我创建了一个错误处理系统,迫使我在BLL中为每个函数创建以下代码。

try
{
   ...
   _unitOfWork.Save(nameof(Function));
}
catch
{
   if (rollbackTo != null)
   {
      _unitOfWork.RollbackToSave(rollbackTo);
   }
   else
   {
       _unitOfWork.Rollback();
   }
   throw;
}

这基本上允许我管理我的每个请求的事务,并管理事务的错误处理,而我的控制器不知道这样做的实际方式 - 它只允许它决定事务是否会继续(rollbackTo参数)

我想知道的是,有没有办法让我不必一遍又一遍地编写这段代码?我想过只抛出一个异常,然后在我的管道中处理它 - 但是因为我需要向用户返回一个有价值的响应,而不仅仅是一个500代码 - 这不是一个真正的选择。我想过可能会创建一个调用和抽象方法的基类 - 并按功能实现它 - 但这也不会起作用,因为参数可以改变。任何想法?

0 个答案:

没有答案