предупреждение анализа кода CA2000, которое не должно появляться - PullRequest
3 голосов
/ 15 февраля 2011

У меня небольшая проблема с предупреждением CA2000.В моем проекте, который установлен как стартовый проект, я получаю это предупреждение, хотя оно не должно появляться.

Справочная информация: я использую Visual Studio 2010 с проектами в .NET 3.5.Запускаемый проект представляет собой приложение WPF.

В классе App выглядит следующим образом:

public partial class App : System.Windows.Application {

        /// <summary>
        /// Application Entry Point.
        /// </summary>
        [System.STAThreadAttribute()]
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        public static void Main() {
            AutoTester.App app = new AutoTester.App();
            app.Run();
        }
    }

Предупреждение говорит:

Предупреждение 1 CA2000: Microsoft.Reliability: Inметод 'App.Main ()', вызовите System.IDisposable.Dispose для объекта 'app' до того, как все ссылки на него выйдут из области видимости.C: \ Projects \ Freelance \ svn \ AutoTester \ Application \ Applications \ AutoTester \ obj \ x86 \ Debug \ App.g.cs 47 Автотестер

Как видно, предупреждение появляется в App.g.CS, который является автоматически сгенерированным файлом.В свойствах проекта я деактивировал анализ кода для автоматически сгенерированных файлов.Msgstr "Подавить результаты из автоматически сгенерированного кода".Следовательно, это предупреждение не должно появляться, верно?

Теперь моя проблема в том, что я не могу локально подавить предупреждение, потому что код будет переопределен.Кроме того, я не хочу устанавливать правило для этого в глобальном масштабе, потому что я не хочу деактивировать CA2000.

Кто-нибудь сталкивался с подобной проблемой или кто-нибудь знает, что здесь происходит не так?

С наилучшими пожеланиями, Кристиан

1 Ответ

2 голосов
/ 15 февраля 2011

«Подавить результаты автоматически сгенерированного кода» означает, что результаты автоматически сгенерированного кода не отображаются. Visual Studio знает, что код генерируется сторонним разработчиком, только если он содержит GeneratedCodeAttribute (см. здесь ). По-видимому, инструмент, который создал ваш код, не добавил атрибут.

Вы можете попробовать создать еще один частичный класс приложения и поместить туда атрибут:

[GeneratedCode("CodeGenerator", "1.0.0.0")]
public partial class App 
{
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...