#resharper #fxcop #rule-engine
#повторная обработка #fxcop #механизм создания правил
Вопрос:
Я создал проект и добавил файл набора правил. Затем я специально нарушил правило, чтобы убедиться, что оно работает, но это было не так.
Вот правило, которое я включил.
CA2211 — Microsoft.Использование — «Непостоянные поля не должны быть видны».
Неправильный код:
public class Foo
{
public string foobar = "Hello World";
}
Он компилируется просто отлично, без предупреждений или ошибок. Я думаю, это может быть связано с переопределением ReSharper? Я не уверен. Есть мысли о том, как это исправить?
Комментарии:
1. Вероятно, это вопрос / ошибка, которую вы хотите отправить в JetBrains.
Ответ №1:
Согласно сравнению продуктов Visual Studio 2010…
Если вы используете VS 2010 Premium или Ultimate, у вас должен быть доступен «Статический анализ кода». Если это так, и эта функция не отображается, вы можете подумать о переустановке Visual Studio. Если вы не используете ни то, ни другое, у вас не будет доступа к этой функции, извините.
Тем не менее, вы все еще можете использовать FxCop для проверки вашего кода.
ПРИМЕЧАНИЕ: Ссылка находится на FxCop 10.0.
Ответ №2:
CA2211 проверяет только статические поля. Если вы хотите также проверять поля экземпляра, вам следует включить CA1051 (Microsoft.Дизайн.Не объявляйте видимые постоянные поля).
Комментарии:
1. Ну, в итоге я проверил ВСЕ поля (все правила) для набора правил …. он по-прежнему не выдает мне никаких предупреждений, когда я делаю неправильное кодирование. Я думаю, что просто ReSharper каким-то образом взял на себя эту работу.
2. Когда вы говорите, что «добавили файл набора правил», вы просто добавили файл в проект, или вы действительно указали его как набор правил для проекта (например: через страницу анализа кода в диалоговом окне свойств проекта)?
3. У меня нет опции «Анализ кода» в моем диалоговом окне свойств. Я думаю, что раздел был удален из-за resharper. Я помню, что видел это заранее. :-/
4. У нас есть ReSharper, и у нас есть страница «Анализ кода» в свойствах проекта. Поэтому, если в вашей настройке нет чего-то необычного, я не думаю, что проблема в ReSharper. Вы пробовали отключить ReSharper, просто чтобы посмотреть, есть ли разница?