Como: Salvar valores no estado do aplicativo
O estado do aplicativo é um repositório de dados que está disponível para todas as classes em um aplicativo ASP.NET.O estado do aplicativo é armazenado na memória no servidor e é mais rápido que armazenar e recuperar informações em um banco de dados.Ao contrário do estado de sessão, que é específico a uma sessão de usuário único, o estado do aplicativo se aplica a todos os usuários e sessões.Portanto, o estado do aplicativo é um local útil para armazenar pequenas quantidades de dados muito usados que não serão alteradas de um usuário para outro.
O estado do aplicativo é armazenado na classe HttpApplicationState, uma nova instância que é criada na primeira vez que um usuário acessa qualquer recurso URL em um aplicativo.A classe HttpApplicationState é exposta através da propriedade Application.
O estado do aplicativo armazena dados como tipo de dados Object.Portanto, você deve converter os dados de volta para o tipo apropriado quando recuperá-los.
O estado do aplicativo é armazenado na memória do servidor, portanto, uma grande quantidade de dados no estado do aplicativo pode preencher rapidamente a memória do servidor.Se o aplicativo for reiniciado, dados do estado do aplicativo serão perdidos.O estado do aplicativo não é compartilhado entre vários servidores em um Web farm ou entre processos do operador em um ambiente Web.Finalmente, o estado do aplicativo é de segmentação livre, para quaisquer dados que estejam armazenados no estado do aplicativo, estes devem ter suporte interno a sincronização.Para obter mais informações sobre essas considerações, consulte Visão geral do estado do aplicativo ASP.NET e Recomendações sobre Gerenciamento de Estado do ASP.NET.
Para gravar um valor de estado do aplicativo
Em seu aplicativo, defina o valor da variável na classe HttpApplicationState.
O exemplo de código a seguir mostra como você pode definir a variável de aplicativo Messagepara uma sequência de caracteres.
Application("Message") = "Welcome to the Contoso site."
Application["Message"] = "Welcome to the Contoso site.";
Para gravar um valor de estado do aplicativo quando o aplicativo for iniciado
No manipulador Application_Start do arquivo Global.asax do seu aplicativo, defina o valor da variável de estado do aplicativo.Simplesmente como em uma página .aspx regular, a classe HttpApplicationState é exposta através do objeto Application.
O exemplo de código a seguir mostra como você pode definir a variável de aplicativo Message como uma sequência de caracteres e inicializar a variável PageRequestCount como 0.
Application("Message") = "Welcome to the Contoso site." Application("PageRequestCount") = 0
Application["Message"] = "Welcome to the Contoso site."; Application["PageRequestCount"] = 0;
Escrevendo um valor para estado de aplicativo com bloqueio
Variáveis do estado do aplicativo podem ser acessadas por várias threads ao mesmo tempo.Portanto, para evitar dados inválidos, você deve bloquear o estado do aplicativo para gravação por apenas um segmento antes de definir valores.
Observação: |
---|
Você sempre deve modificar dados do estado do aplicativo em uma instrução de bloqueio, a menos que você tenha definido algum outro tipo de bloqueio.Para obter mais informações, consulte Sincronizando dados de multithreading. |
Escrevendo um valor para estado de aplicativo com bloqueio
No código em que você definir a variável do aplicativo, chame o método HttpApplicationState.Lock, defina o valor de estado do aplicativo e, em seguida, chame o método HttpApplicationState.UnLock para desbloquear o estado do aplicativo, liberando-o para outras solicitações de gravação.
O exemplo de código a seguir mostra como você pode bloquear e desbloquear o estado do aplicativo.O código aumenta a variável PageRequestCount por 1 e, em seguida, desbloqueia o estado do aplicativo.
Application.Lock() Application("PageRequestCount") = _ CInt(Application("PageRequestCount")) + 1 Application.UnLock()
Application.Lock(); Application["PageRequestCount"] = ((int)Application["PageRequestCount"])+1; Application.UnLock();
Consulte também
Tarefas
Como: Ler valores de estado do aplicativo
Conceitos
Visão Geral sobre o Gerenciamento de Estado do ASP.NET
Recomendações sobre Gerenciamento de Estado do ASP.NET