C# 在发布版本中省略代码
我在.net库中使用smartinspect来跟踪方法等。但对于发布配置,我希望避免部署smartinspect和跟踪代码内部所有内容的开销。有没有一种简单的方法可以在每次调用方法时不使用编译器指令来实现这一点 示例代码:C# 在发布版本中省略代码,c#,.net,dll,smartinspect,C#,.net,Dll,Smartinspect,我在.net库中使用smartinspect来跟踪方法等。但对于发布配置,我希望避免部署smartinspect和跟踪代码内部所有内容的开销。有没有一种简单的方法可以在每次调用方法时不使用编译器指令来实现这一点 示例代码: public bool OpenDocument(string srcFile) { SiExportWordSession.EnterMethod(this, "OpenDocument"); try {
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构造。有更好的方法来解决这个问题吗?有一种方法,但它仍然需要您映射您正在使用的方法 关键是向方法添加一个条件属性,该属性将指示它将运行的构建:
[Conditional("TRACE")]
所有调用该方法的代码只有在生成定义跟踪常量时才会编译到代码中。有一种方法,但它仍然要求您映射正在使用的方法 关键是向方法添加一个条件属性,该属性将指示它将运行的构建:
[Conditional("TRACE")]
所有调用该方法的代码只有在生成定义跟踪常量时才会编译到代码中。看起来像是您正在寻找的。I short:可以使用if调试。请注意,这将要求每个调用都附带一个if@RickvandenBoschLooks就像你要找的一样。I short:可以使用if调试。请注意,这将要求每个调用都附带一个if@里克范登博什