Как добавить #pragma предупреждение отключить 1591 с помощью CodeDom - PullRequest
2 голосов
/ 14 апреля 2009

Часть нашего приложения использует код, созданный с использованием CodeDom. Этот код не нуждается в комментариях Xml, поэтому мы хотели бы добавить

#pragma warning disable 1591 

к этим сгенерированным файлам. Возможно ли это с CodeDom, а если нет, то есть ли другие предложения о том, как этого добиться?

Ответы [ 2 ]

4 голосов
/ 12 января 2010
provider.GenerateCodeFromCompileUnit(
    new CodeSnippetCompileUnit("#pragma warning disable 1591"),
    sourceWriter, options);
provider.GenerateCodeFromCompileUnit(targetUnit, sourceWriter, options);
provider.GenerateCodeFromCompileUnit(
    new CodeSnippetCompileUnit("#pragma warning restore 1591"),
    sourceWriter, options);

Не переводит хорошо (вообще) на другие языки. YMMV -Ian

0 голосов
/ 14 апреля 2009

Просматривая весь код отражателя, ничего не появляется как «правильный» путь. Тем не менее, может быть способ, если вы готовы выполнить некоторую обработку после генерации. Используя RegionDirective, поместите специальный токен в значение RegionText. Затем, как только ваш код сгенерирован, вернитесь и выполните замену строки.

Поскольку в коде не было ничего, что обеспечивало бы соответствие областей кода, у вас может быть одна область начального кода в конце, чтобы снова включить предупреждения.

Например. вашими токенами могут быть "# PRAGMA1591" и "#ENABLEWARNINGS." Следовательно, после генерации кода вы получите

#region #PRAGMA1591

...

#region #WARNINGRESTORE
#endregion

Затем вы должны заменить строку, чтобы получить следующее:

#region Disable Warning 1591
#pragma warning disable 1591

...

#pragma warning restore
#endregion

Ваши строки расширяются так:

  • PRAGMA1591 -> Игнорировать отсутствие документации XML \ n # предупреждение о прагме

    отключить 1591
  • регион #WARNINGSRESTORE -> #pragma warning restore

...