Como corrigir um aviso do compilador C # descartável do CA2000, ao usar um cache global

CA2000 é um aviso sobre a interface IDisposable:

CA2000: Microsoft.Reliability: No método 'ImportProcessor.GetContext (string)', chame System.IDisposable.Dispose no objeto 'c' antes que todas as referências a ele estejam fora do escopo.

My método é usado para armazenar um cache de contexto da seguinte forma:

public class RegionContext : IDisposable { /* Implement Dispose() here */ } 

private Dictionary<string, RegionContext> contextCache = new ..... ();

public RegionContext GetContext(string regionCode)
{
    RegionContext rc = null;

    if (!this.contextCache.TryGetValue(regionCode.ToUpper(), out rc))
    {
        rc = new RegionContext(regionCode);
        this.contextCache.Add(regionCode.ToUpper(), rc);
    }

    return rc;
}

Onde você usaria ousing() instrução que corrige esse aviso do compilado

Minha classe externa realmente itera e descarta o conteúdo nocontextCache em sua própria implementação. Devo suprimi-lo ou existe uma maneira de me livrar corretamente desse aviso?

questionAnswers(3)

yourAnswerToTheQuestion