Informações persistentes em projetos e soluções
Quando você fechar um projeto, sistema autônomo dados do usuário, sistema autônomo valores de variáveis são descartadas, mesmo que você salvar a solução ou projeto.The Visual Studio No entanto, o modelo de automação, oferece uma maneira de armazenar ou persistirem, esses dados de usuário entre sessões do ambiente de desenvolvimento integrado (IDE). Isso é realizado usando o Globals objeto por meio do Globals e Globals Propriedades. Globals persists solution variables and Globals persists project variables.Cada propriedade retorna um Globals objeto cujos membros permitem armazenar, recuperar, enumerar e opcionalmente persistir os dados. Quando você fizer isso, a próxima time em aberto a solução ou projeto, os valores são restaurados.
Isso é útil, por exemplo, para permitir que um comando oferecer um valor padrão persistente, ou permitir a alterar seu comportamento depois que ele tiver sido chamado um número específico de vezes.Add-ins também pode usar esse recurso para persistir dados e recuperar dados de arquivos de solução (.sln).
Detalhes de comportamento do objeto global
Se o Globals objeto está associado com o IDE e, em seguida, o valor persiste em um dos dois locais. For Windows NT 4.0, Windows 2000 Professional, e Windows Server 2003, os valores são armazenados em C:\winnt\Profiles\<username> \aplicativo dados\Microsoft\Visual Studio\extglobal.dat.For Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, se o computador estiver a configuração de logon do usuário, os valores são armazenados em C:\Windows\Profiles\<username> \aplicativo dados\Microsoft\Visual Studio\extglobal.dat.Caso contrário, não há nenhum <username> elemento.Ocorre sempre que o IDE está fechado ou uma operação de salvar tudo, o IDE persiste valores global.
Se o Globals objeto é associado a Solution2 objeto e, em seguida, o valor persiste no arquivo .sln. Esses valores são mantidos quando o arquivo de solução é salvo.
Se o Globals objeto é associado com um Project objeto e, em seguida, o valor persiste no arquivo de projeto (.dsp, .vbp e assim por diante). Os valores são mantidos sempre que um projeto é salvo.
sistema autônomo valores a serem armazenados devem ser sistema autônomo uma seqüência de caracteres que pode ser mantida — ou seja, não um SAFEARRAY, objeto ou armazenamento estruturado.Se a variável não pode ser convertida em uma seqüência de caracteres, um valor string em inglês é persistentes que explica por que a variável não foi persistentes.
Sempre que as variáveis são persistentes, um novo registro de variáveis e seus valores é salvo.
Valores global persistentes
O exemplo de macro a seguir mostra como usar o Globals objeto e seus membros para reter o valor de uma variável depois que uma solução for fechada e como acesso valor quando a solução é reaberta. Ele conta e gera o número de vezes que o suplemento foi carregado.
Sub OnAddinLoaded(ByVal dte As DTE)
' Count the number of times an add-in is loaded
' and store the value in the solution.
Dim globals As Globals
globals = dte.Solution.Globals
If globals.VariableExists("AddinLoadCounter") Then
' The counter has already been set, so increment it.
Dim int32 As System.Int32
int32 = System.Int32.Parse(CStr(globals("AddinLoadCounter")))
int32 += 1
globals("AddinLoadCounter") = int32.ToString()
Else
' Counter has never been set, so create and initialize it.
globals("AddinLoadCounter") = 1.ToString()
globals.VariablePersists("AddinLoadCounter") = True
End If
MsgBox("This add-in has been loaded: " & _
globals.VariableValue("AddinLoadCounter") & " times.")
End Sub
void OnAddinLoaded(_DTE applicationObject)
{
// Count the number of times an add-in is loaded
// and store the value in the solution.
Globals globals;
globals = applicationObject.Solution.Globals;
if(globals.get_VariableExists("AddinLoadCounter"))
{
// The counter has already been set, so increment it.
System.Int32 int32;
int32 = System.Int32.Parse((string)
globals["AddinLoadCounter"]);
int32++;
globals["AddinLoadCounter"] = int32.ToString();
}
else
{
// Counter has never been set, so create and initialize it.
globals["AddinLoadCounter"] = 1.ToString();
globals.set_VariablePersists("AddinLoadCounter", true);
}
System.Windows.Forms.MessageBox.Show("This add-in has been loaded:
" + globals.VariableValue["AddinLoadCounter"] + " times.");
}
Consulte também
Tarefas
Como: Adicionar e manipular comandos
Demonstra Passo a passo: Criando um assistente
Conceitos
Gráfico do modelo de objetos de automação
Outros recursos
Criando e controlando o ambiente Windows