我在 .net 库中使用 smartinspect 来跟踪方法等。但是对于发布配置,我想避免部署 smartinspect 和跟踪代码内所有内容的开销。每次调用方法时,是否有一种简单的方法可以在不使用编译器指令的情况下实现这一点?
示例代码:
public bool OpenDocument(string srcFile)
{
SiExportWordSession.EnterMethod(this, "OpenDocument");
try
{
SiExportWordSession.LogString("srcFile", srcFile);
try
{
_doc = new Document(srcFile);
return true;
}
catch (Exception e)
{
SiExportWordSession.LogException(e);
ErrorName = e.GetType().Name;
ErrorMessage = e.Message;
return false;
}
}
finally
{
SiExportWordSession.LeaveMethod(this, "OpenDocument");
}
}
我的第一个想法是为 smartinspect 创建一个包装器,它要么调用 smartinspect,要么什么都不做,具体取决于发布配置。但这不会让我摆脱 try finally 构造。有没有更好的方法来解决这个问题?