DICA: Trabalhando com CACHE no ASP.NET

Quando trabalhamos com cache de dados no ASP.NET grande parte dos programadores utilizam o código bem parecido com o descrito abaixo:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (Cache["SomeData"] != null)
        {
            string name = ((SomeClass)Cache["SomeData"]).Name;
        }

        //...
    }

Este código não é suficientemente seguro e segundo a documentação da Microsoft, essa declaração pode gerar uma NullReferenceException. Dessa forma não existe nenhuma garantia de que um objeto em cache irá ficar na memória e após a primeira chamada o objeto pode ser suprimido pelo garbage colector ou por outra thread com dados em cache.

Para não termos problemas com isso, podemos reescrever o código acima da seguinte forma:

protected void Page_Load(object sender, EventArgs e)
    {
        SomeClass someClass = Cache["SomeData"] as SomeClass;
        if (someClass != null)
        {
            string name = someClass.Name;
        }
        //...
    }

Leia mais sobre como adicionar itens em cache no ASP.NET.
É isso ai.

Rodrigo Kono
MCP.NET 2.0 – MCTS (WEB – SQL) – MSP
DevGoiás.NET Lead
INETA Brasil Board

  • José Lino

    pesquisas para usarmos no devgoias?