我是C#的新手,正在寻找实现以下实现的最佳方法。
我的项目有几个Model类(例如25个),每个类都有一个称为“ process()”的静态方法,这仅需要一点时间即可完成其任务。
我需要一个接一个地调用每个类中的所有这些方法,并添加一些日志(将方法执行的写入状态写入文件)来跟踪执行。
我可以简单地执行以下操作,但是可以肯定,应该有一种更好的专业方法来执行此操作
Log.WriteLog(DateTime.Now + " Class A Process Started");
ClassA.Process()
Log.WriteLog(DateTime.Now + " Class A Process Finished");
Log.WriteLog(DateTime.Now + " Class B Process Started");
ClassB.Process()
Log.WriteLog(DateTime.Now + " Class B Process Finished");
............ continue 25 classes
我想做的是编写一个方法,然后在其中添加日志和重复性工作。
private void CommonMethod(Class)
{
Check what class
Add Process started Log
Call Process method
Add proicess finished Log
}
您可以创建接受委托并执行日志记录的函数,如下所示:
public void ProcessAndLog(Action action, String processName)
{
Log.WriteLog(DateTime.Now + $" Class {processName} Process Started");
action();
Log.WriteLog(DateTime.Now + $" Class {processName} Process Finished");
}
并这样称呼它:
ProcessAndLog(ClassA.Process, "A"); //"A" could be part of ClassA - e.g. ClassA.Name;
ProcessAndLog(ClassB.Process, "B");
//etc
只要每个Process
方法都没有参数且无效,则此方法将起作用-Action
委托的签名。
如果它具有参数,则可以这样调用它:
ProcessAndLog(() => ClassC.Process("value"), "C");
如果您需要返回值,请考虑使用Func<T>
而不是Action
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句