VS2005 análise de código: CA1063 (descarte de chamadas (true) e finalize supress) - com registro

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

Pergunta

Eu estou tentando aderir às regras de análise de código VS2005 para um novo projeto. Eu tenho esse método:

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

(A chamada consola vai se tornar uma chamada log4net em algum momento, e estamos sempre interessados ??em dispor de registro para alguns dos nossos tipos).

O presense da linha console de depuração desencadeia este erro:

Erro 1 CA1063: Microsoft.Design: Modificar PerfectDisposableClass.Dispose (): tão vazio que ele chama Dispose (true), em seguida, chama GC.SuppressFinalize na instância atual do objeto ( 'isto' ou 'Me' em VB), e, em seguida, retorna. F: \ Visual Studio 2005 \ Projects \ DisposeAndFinalize \ DisposeAndFinalize \ PerfectDisposableClass.cs 26 DisposeAndFinalize

Sem recorrer a directivas Pragma há uma maneira redonda isso? Talvez escrever minhas próprias regras? Além disso, aer as regras existentes em uma montagem em algum lugar que eu posso olhar com refletor?

Foi útil?

Solução

Você poderia colocar a declaração de registro dentro do Dispose (bool disposing) método para manter dentro das diretrizes:

public void Dispose(bool disposing)
{
  if (disposing)
  {
     Console.WriteLine("...");
  }
  ...
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top