Как добавить предупреждение #pragma об отключении 1591 с помощью CodeDom

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

#pragma warning disable 1591 

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


person Ralph Shillington    schedule 14.04.2009    source источник
comment
этот ответ помог? все еще ищете другие способы? Вы когда-нибудь находили хорошее решение?   -  person Erich Mirabal    schedule 22.04.2009


Ответы (2)


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 - Ян

person Ian Sullivan    schedule 12.01.2010

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

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

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

#region #PRAGMA1591

...

#region #WARNINGRESTORE
#endregion

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

#region Disable Warning 1591
#pragma warning disable 1591

...

#pragma warning restore
#endregion

Ваши строки расширяются следующим образом:

  • #P6# отключить 1591
  • регион #WARNINGSRESTORE -> #pragma предупреждение восстановление

person Erich Mirabal    schedule 14.04.2009