C# 用于日志记录的代表
如何重构这段代码C# 用于日志记录的代表,c#,.net,logging,delegates,refactoring,C#,.net,Logging,Delegates,Refactoring,如何重构这段代码 ulong get_item_action_id = log.LogAction(iteration_id, "GET_ITEM_SERVICE"); try { p = serv.GetItemById(get_item_action_id, ls.externalItem.item); } catch (Exception exc) { log.LogActionResult(get_item_action_id, false, exc); cont
ulong get_item_action_id = log.LogAction(iteration_id, "GET_ITEM_SERVICE");
try
{
p = serv.GetItemById(get_item_action_id, ls.externalItem.item);
}
catch (Exception exc)
{
log.LogActionResult(get_item_action_id, false, exc);
continue;
}
log.LogActionResult(get_item_action_id, true);
这里的情况是:
ulong get_item_action_id=log.LogAction(迭代_id,
“获取项目服务”);
)p=serv.GetItemById(get\u item\u action\u id,ls.externalItem.item);
)log.LogActionResult(获取项目操作id,false,exc);
或log.LogActionResult(获取项目操作id,true);
)所以,我想我可以用一些委托重写它,但是如何?在哪里以及为什么要使用委托?我想重新编码try{}catch block,因为我有很多这样的构造。作为委托重构,而不是作为静态/非静态方法重构,你会得到什么?我建议您首先作为一个方法进行重构,然后重构为一个委托。@ZevSpitz原因是我得到的不仅仅是一个serv.GetItemByid()方法,还有很多不同的方法。我将重构代码中的日志记录,将代码重构为成功或引发异常的方法,然后使用Decorator模式包装对该方法的调用,并进行适当的日志记录(如果成功,则记录日志;如果发生异常,则记录“错误”)。我看不到在
log
实例上使用委托的好处。