Я пытаюсь задокументировать свои пространства имен в соответствии с рекомендациями этого ответа StackOverflow:
namespace Test
{
/// <summary>
/// The documentation for my namespace goes here.
/// </summary>
[System.Runtime.CompilerServices.CompilerGenerated]
internal class NamespaceDoc
{
}
// (other classes below...)
}
Однако добавление этого в мой файл привело к тому, что StyleCop выдал несколько ошибок. В частности, он жаловался, что документ может содержать только один класс на корневом уровне (SA1402) и что все внутренние классы должны быть после общедоступных классов (SA1202).
Мне удалось заставить StyleCop игнорировать второе предупреждение, добавив:
[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, чтобы документировать пространства имен, но я бы предпочел не делать этого, если мне это не нужно, потому что я хочу, чтобы вся документация была доступна на уровне исходного кода. Я также не хочу полностью отключать правила, потому что они полезны в большинстве случаев.