Привет! Я написал собственное правило анализа кода с использованием FxCop sdk api и просто интегрировал его в свой тестовый проект.Он правильно анализирует код проекта, но также анализирует автоматически сгенерированные файлы.т.е. в моем случае файлы, созданные с расширением «.gics».
Я попытался проверить значение «Подавить ошибки анализа кода в сгенерированном коде» в свойствах моего анализа кода моего проекта. Однако разницы нетв моем выводе.
Может кто-нибудь сказать мне, как я могу исключить мой автоматически сгенерированный код из анализа с моим настраиваемым правилом?
РЕДАКТИРОВАТЬ: Потратив немного больше времени на анализ проблемы и реализации, я пришелк выводу, что автоматически сгенерированный код анализируется из-за отсутствия [GeneratedCodeAttribute]
в некоторых полях автоматически сгенерированных .g.i.cs
файлов.
Вот пример моего автоматически сгенерированного кода:
#line 72 "..\..\..\..\Views\Screen.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtCopyright;
#line default
#line hidden
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
#line default
#line hidden
}
В этом примере поле txtCopyright
анализируется во время анализа кода, и метод InitializeComponent()
пропускается, что соответствует присутствию [GeneratedCodeAttribute]
.
Я нашел решение этой проблемы с помощьюналичие частичного класса с тем же именем, что и у автоматически сгенерированного файла, а затем добавление [GeneratedCodeAttribute]
поверх этого класса.Но это не кажется правильным, так как может пропустить некоторый код, который должен быть фактически проанализирован.
Может кто-нибудь помочь мне узнать, что можно сделать, чтобы исключить такие поля, как txtCopyright
, которые будут пропущены во время анализа кода?