Cómo arreglar una advertencia del compilador de CA # 2000 IDisposable C #, cuando se usa una memoria caché global

CA2000 es una advertencia sobre la interfaz IDisposable:

CA2000: Microsoft.Reliability: en el método 'ImportProcessor.GetContext (string)', llame a System.IDisposable.Dispose en el objeto 'c' antes de que todas las referencias estén fuera de alcance.

Mi método se usa para almacenar un caché de contexto de la siguiente manera:

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;
}

¿Dónde usarías lausing() declaración que corrige esta advertencia del compilador?

i clase externa en realidad itera y elimina los contenidos en lacontextCache en su propia implementación. ¿Debo suprimirlo o hay alguna forma de deshacerme de esta advertencia?

Respuestas a la pregunta(3)

Su respuesta a la pregunta