我正在看使用SupressMessage吃一些CA警告。 SupressMessage的文檔說確保它不在發佈版本中。因此,SupressMessage屬性應該如下包裝在#if DEBUG中?代碼分析和SupressMessage - 如果你用#if包裝屬性DEBUG
public class Class1
{
#if DEBUG
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "args")]
#endif
static void Main(string[] args) { }
#if DEBUG
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA1806:DoNotIgnoreMethodResults", MessageId = "System.Guid")]
#endif
public static bool IsValidGuid(string guid)
{
try
{
new Guid(guid); //Causes CA1806: DoNotIgnoreMethodResults
return true;
}
catch (ArgumentNullException) { }
catch (OverflowException) { }
catch (FormatException) { }
return false;
}
}
參考:有關詳細信息,請參閱https://msdn.microsoft.com/en-us/library/ms244717.aspx
你不應該發佈使用源鎮壓建立以防止意外出貨的,源抑制的元數據。由於源內抑制的處理成本,應用程序的性能也可能因包含源內抑制元數據而降低。
該文檔還指出,屬性類是由'[ConditionalAttribute(「CODE_ANALYSIS」)]'歸屬的,從來沒有打擾過這一點,但也許它不在發佈版本呢? –