2009-02-08 3 views
21

В моем приложении у меня есть справедливое количество объектов, у которых есть поля, которые получают свои значения, установленные через отражение. (В этом случае NHibernate устанавливает их). Я бы хотел избавиться от «x никогда не назначается и всегда будет иметь предупреждения по умолчанию 0», поэтому я могу более легко выбрать другие предупреждения. Я понимаю, что вы можете окружить их прагматическими директивами, но AFAIK вы должны сделать это для каждого. Является ли проект широким или широким решением, я мог бы это сделать?Глобальное подавление предупреждений компилятора C#

+0

Любые причины, по которым вы не просто поместите предупреждение #pragma, отключите 169 в верхней части файла исходного кода? Он подавляет остальную часть файла. –

+0

++ к этому, намного лучше, так как он дает понять, что этот файл содержит множество этих и не совсем всех – ShuggyCoUk

+1

В моем случае я использую NHibernate для установки идентификаторов сущностей. Поэтому на каждом объекте домена у меня есть private int _ID; Я действительно не хочу, чтобы устанавливать директивы прагмы по каждому из entites, но скорее скорее что-то глобальное. – pondermatic

ответ

33

Используйте C# командной строки параметр/nowarn http://msdn.microsoft.com/en-us/library/7f28x9z3(VS.80).aspx

Чтобы сделать это в Visual Studio Гото Project свойства-> Build -> (Ошибки и предупреждения) Подавлять предупреждения, а затем указать разделенный запятыми список предупреждений, которые необходимо быть подавленным.

+13

Как указывает AnthonyWJones ниже, идентификаторы кода компилятора, которые необходимо поместить в этот отдельный список, находятся в окне «Вывод» при просмотре потока сборки. Что еще не упоминается в этом потоке, так это то, что они представлены в форме «CSxxxx» 'и вы должны удалить префикс 'CS' в своих кодах, чтобы он работал. –

+0

Настолько потрясающе. Благодаря!!! –

8

Откройте свойства проекта на вкладке сборки, введите идентификаторы предупреждений, которые вы хотите подавить, в поле Подавить предупреждения:.

+0

Это то, что я хочу сделать, но печально предупреждающий идентификатор не написан с предупреждением в панели списков ошибок VS2010. И некоторые идентификаторы предупреждений очень близки, но коды отличаются друг от друга, я имею в виду, что ошибка CLS для ошибок int и CLS для имени класса отличается. Если ваш стандарт кодирования не CLS, что вы будете делать? –

+1

@ DavutGürbüz: Попытка поиска в окне вывода при построении – AnthonyWJones

+0

Я открыл подробную сборку, поэтому ее трудно увидеть, но она работает, BC40028 отключил большинство моих предупреждений CLS благодаря –

1

Тег VC++ XML для этого является < DisableSpecificWarnings /> с разделительным списком с числовой идентификацией с запятой. Это, кажется, не документировано нигде, что я вижу только FYI.

Смежные вопросы