このStackOverflowの回答で推奨されているように、名前空間を文書化しようとしています:
namespace Test
{
/// <summary>
/// The documentation for my namespace goes here.
/// </summary>
[System.Runtime.CompilerServices.CompilerGenerated]
internal class NamespaceDoc
{
}
// (other classes below...)
}
ただし、これをファイルに追加すると、StyleCop でいくつかのエラーが発生しました。具体的には、ドキュメントにはルート レベルで 1 つのクラスのみを含めることができ (SA1402)、すべての内部クラスはパブリック クラスの後に配置する必要がある (SA1202) と主張しました。
以下を追加することで、StyleCop に 2 番目の警告を無視させることができました。
[System.Diagnostics.CodeAnalysis.SuppressMessage(
"StyleCop.CSharp.OrderingRules",
"*",
Justification = "Hack for Sandcastle.")]
ただし、最初の警告を無視することはできませんでした。別の属性を適用しようとしましたが、うまくいきませんでした:
[System.Diagnostics.CodeAnalysis.SuppressMessage(
"StyleCop.CSharp.Maintainability",
"*",
Justification = "Hack for Sandcastle.")]
Sandcastle と StyleCop をうまくプレイさせる最善の方法は何ですか?
Sandcastle ヘルプ ファイル ビルダー内の設定を名前空間をドキュメント化するように変更できることはわかっていますが、すべてのドキュメントをソース コード レベルで利用できるようにしたいので、必要がない限り変更したくありません。また、ほとんどの状況で役立つため、ルールを完全に無効にしたくありません。