Analyse de code VS2005: CA1063 (appel dispos (vrai) et supprime finaliser) - avec enregistrement

StackOverflow https://stackoverflow.com/questions/340745

Question

J'essaie de respecter les règles d'analyse de code VS2005 pour un nouveau projet. J'ai cette méthode:

public void Dispose()
{
    Console.WriteLine("Dispose() called");
    Dispose( true );
    GC.SuppressFinalize(this);
}

(L'appel de la console deviendra un appel log4net à un moment donné, et nous sommes toujours intéressés par la journalisation pour certains de nos types.)

La présence de la ligne de débogage de la console déclenche cette erreur:

Erreur 1 CA1063: Microsoft.Design: Modifier PerfectDisposableClass.Dispose (): Nul afin d’appeler Dispose (true), puis d’appeler GC.SuppressFinalize sur l’instance d’objet actuelle ('this' ou 'Me' dans VB), puis revient. F: \ Visual Studio 2005 \ Projects \ DisposeAndFinalize \ DisposeAndFinalize \ PerfectDisposableClass.cs 26 DisposeAndFinalize

Sans recourir aux directives du pragma, y ??a-t-il un moyen de contourner cela? Peut-être écrire mes propres règles? En outre, après avoir lu les règles existantes dans un assemblage, je peux regarder avec un réflecteur?

Était-ce utile?

La solution

Vous pouvez insérer l'instruction log dans la méthode Dispose (méthode d'élimination) pour respecter les consignes suivantes:

public void Dispose(bool disposing)
{
  if (disposing)
  {
     Console.WriteLine("...");
  }
  ...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top