我有一些日志记录逻辑,我想在几种方法之前和之后调用。每种方法都接受不同数量/类型的参数。我正在尝试对其进行设置,以便在调用每个方法时不必复制日志记录逻辑。通过创建一些代表,我已经能够减少重复的数量。我为使用的每个数量/类型的参数创建了一个委托,并且我有一个接受每个委托并进行日志记录的方法。但是,我仍然有大约 6 个不同的代表,因此这六个的逻辑是重复的。
我认为可以修改它,因此无论参数的数量如何,我都有一种方法可以进行日志记录并调用该方法。但我一直无法弄清楚。
下面是其中一位代表的示例以及我试图不重复的逻辑。
public delegate void LineOfBusinessHandler(DateTime runDate, LineOfBusinessCode lineOfBusinessCode);
public void Run(DateTime runDate, ProcessCode process, LineOfBusinessCode lineOfBusinessCode, LineOfBusinessHandler del)
{
this.ProcessManager.AddToBatchLog(process.ToString(), ProcessStatus.Started.ToString(), null, runDate);
try
{
del(runDate, lineOfBusinessCode);
this.ProcessManager.AddToBatchLog(process.ToString(), ProcessStatus.Finished.ToString(), null, runDate);
}
catch (Exception e)
{
int errorId = SystemManager.LogError(e, process.ToString());
this.ProcessManager.AddToBatchLog(process.ToString(), ProcessStatus.Errored.ToString(), errorId, runDate);
}
}