Добавление комментариев в Settings.Designer.cs - PullRequest
5 голосов
/ 04 января 2011

Я использую файл .Settings в моем проекте Visual Studio 2008, который автоматически генерирует файл Settings.Designer.cs из пользовательского PublicSettingsSingleFileGenerator инструмент.

Это работает нормально, но я также хочу включить «Предупреждения как ошибки» в параметрах компиляции, чтобы заставить всех обновлять комментарии XML, но я не знаю, как добавить комментарии ко всемэлементов в автоматически сгенерированном коде.

К реальным свойствам можно добавить комментарии, выбрав элементы в режиме конструктора и добавив «Описание» в окне свойств.Но, кажется, нет способа сделать это для объявления класса или свойства экземпляра по умолчанию.

Шаги по воспроизведению этой проблемы следующие:

  1. Создание новогоproject
  2. Добавить файл настроек в проект
  3. Установить для «Модификатора доступа» файла настроек значение Public
  4. Перейти к свойствам проекта, раздел Build
  5. Установите для параметра «Рассматривать предупреждения как ошибки» значение «Все»
  6. Проверьте параметр файла «Выходная документация XML»
  7. Постройте решение

, и этот код генерируется вфайл PublicSettingsSingleFileGenerator Settings.Designer.cs

namespace SettingsTest {

    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
    public sealed partial class Settings1 : global::System.Configuration.ApplicationSettingsBase {

        private static Settings1 defaultInstance = ((Settings1)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings1())));

        public static Settings1 Default {
            get {
                return defaultInstance;
            }
        }
    }
}

Не уверен, что эта дополнительная информация должна быть частью раздела вопроса, так как она указывает на ответ

Согласно этой ссылке атрибуты, примененные к классу, кажутся неправильными.

http://blogs.msdn.com/b/codeanalysis/archive/2007/04/27/correct-usage-of-the-compilergeneratedattribute-and-the-generatedcodeattribute.aspx

" CompilerGenerateAttribute - Этот атрибут предназначен только для использования компилятором ииндикаУбедитесь, что конкретный элемент кода генерируется компилятором.Это никогда не должно использоваться в исходном коде. "

" GeneratedCodeAttribute - Этот атрибут предназначен для использования пользовательскими инструментами, которые генерируют код.Его следует применять только к коду, который повторно генерируется снова и снова, и не должен использоваться шаблонами, которые пользователь должен изменить.Он также не должен применяться на уровне типа, если генерируемый тип является частичным классом.В этой ситуации его следует применять только к отдельным элементам, которые содержатся в сгенерированной части типа. "

Обновление

Я поднял ошибкусообщите об этом на сайте Microsoft Connect и обновите, и примите ответ, когда мы получим дополнительную информацию http://connect.microsoft.com/VisualStudio/feedback/details/634692/publicsettingssinglefilegenerator-code-fails-when-treat-warnings-as-errors-is-set-to-all-and-xml-documentation-is-on

Ответы [ 4 ]

2 голосов
/ 04 января 2011

Нет хорошего способа сделать это, вы не можете добавить отключение предупреждения #pragma в автоматически сгенерированный файл. Также проблема с файлами дизайнеров Winforms между прочим. Project + Properties, вкладка Build, Suppress warnings = 1591. Но это отключит диагностику и там, где вы могли бы включить ее. Восстановление с предупреждением #pragma не исправляет это.

1 голос
/ 04 января 2011

К сожалению, здесь есть конфликтующие проблемы \ настройки:

  • Генерация XML-документации будет предупреждать обо всех недостающих комментариях для открытых участников.
  • Вы включили "обрабатывать предупреждения как ошибки" (это хорошо).
  • Предупреждения выдвигаются относительно класса, который вы не можете изменить, т.е. сгенерированные настройки.

Результатом этого является то, что у вас есть предупреждения, конвертируемые в ошибки компилятора, которые вы не можете исправить. Вы не можете надежно добавлять комментарии к классу настроек вручную, так как они будут потеряны при следующей регенерации класса.

Рассмотрите возможность размещения настроек в отдельном проекте и отключения XML-документации для этого проекта.

0 голосов
/ 31 мая 2012

См. Документирование (XML) настроек приложения в Visual Studio 2010

Для каждого параметра есть свойство description, которое, в свою очередь, создаст комментарий XML в сгенерированном коде. Протестировано в VS2010 как работающее.

0 голосов
/ 04 января 2011

Настройки - это частичный класс: создайте вторую пустую часть и прокомментируйте ее.

...