我正在應用程序中開發幾個類以供演示。我知道這些課程將來會被刪除。禁用特定C#類的所有Stylecop警告
是否可以忽略這些類的所有stylecop警告,因爲我不想花時間在這些警告上?
我搜索但發現我只能通過stylecop中的設置忽略(這也會影響其他類)或某些特定規則(我只是想忽略所有警告)。
我正在應用程序中開發幾個類以供演示。我知道這些課程將來會被刪除。禁用特定C#類的所有Stylecop警告
是否可以忽略這些類的所有stylecop警告,因爲我不想花時間在這些警告上?
我搜索但發現我只能通過stylecop中的設置忽略(這也會影響其他類)或某些特定規則(我只是想忽略所有警告)。
從StyleCop 4.4.0開始,也可以使用單個抑制屬性來抑制規則名稱空間內的所有規則。這通過用單個星號替換規則CheckID和規則名稱來指示。以下代碼示例將取消內部類中所有StyleCop的默認文檔規則。在這種情況下,StyleCop仍然會標記指示外部類缺少文檔的違規,但它會忽略內部類及其內容的所有文檔規則。
public class OuterClass
{
[SuppressMessage("StyleCop.CSharp.DocumentationRules", "*")]
public class InnerClass
{
public void MyUndocumentedMethod
{
}
}
}
您可以通過向代碼塊添加屬性來抑制規則。下面是從下面鏈接的博客文章一類簡單的例子,但你可以做到這一點對各個成員分別:
[SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "SA1600:ElementsMustBeDocumented")]
public class MyUndocumentedClass
{
public void MyUndocumentedMethod {}
}
這隻會壓制SA1600。 –
你就可以欺騙了StyleCop到不加在上面這個報頭處理一個文件,同時:
//------------------------------------------------------------------------------
// <auto-generated>
// Well, not really. This is just a trick to get StyleCop off my back.
// </auto-generated>
//------------------------------------------------------------------------------
如果你想防止了StyleCop來自一個文件運行時,可以將其標記排除使用在http://stylecop.codeplex.com/wikipage?title=Using%20StyleCop%20on%20Legacy%20Projects&referringTitle=Documentation提到ExcludeFromStyleCop屬性的.csproj的文件。
感謝BartłomiejMucha爲我剛剛使用的答案。正如我發現的那樣,「*」適用於特定的規則,但您必須爲每個類別添加抑制。這裏是完整的設置 - 如果您將這些複製到課程頂部,您應該發現所有StyleCop錯誤都被抑制:
[SuppressMessage("StyleCop.CSharp.NamingRules", "*", Justification = "Reviewed. Suppression is OK here.")]
[SuppressMessage("StyleCop.CSharp.LayoutRules", "*", Justification = "Reviewed. Suppression is OK here.")]
[SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "*", Justification = "Reviewed. Suppression is OK here.")]
[SuppressMessage("StyleCop.CSharp.OrderingRules", "*", Justification = "Reviewed. Suppression is OK here.")]
[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "*", Justification = "Reviewed. Suppression is OK here.")]
[SuppressMessage("StyleCop.CSharp.SpacingRules", "*", Justification = "Reviewed. Suppression is OK here.")]
[SuppressMessage("StyleCop.CSharp.DocumentationRules", "*", Justification = "Reviewed. Suppression is OK here.")]
internal class MyClass
{
// ...
}
stylecop警告或錯誤? – daryal